本页将介绍如何在 Linux 和 Windows 环境中运行 deqp 测试、如何使用命令行参数,以及如何使用 Android 应用包。

Linux 与 Windows 环境

首先,请将以下文件及目录复制到目标中。

模块

目录

目标

执行服务器

build/execserver/execserver

/execserver

EGL 模块

build/modules/egl/deqp-egl

/deqp-egl

GLES2 模块

build/modules/gles2/deqp-gles2

/deqp-gles2

data/gles2

/gles2

GLES3 模块

build/modules/gles3/deqp-gles3

/deqp-gles3

data/gles3

/gles3

GLES3.1 模块

build/modules/gles31/deqp-gles31

/deqp-gles31

data/gles31

/gles31

GLES3.2 模块

build/modules/gles32/deqp-gles32

/deqp-gles32

data/gles32

/gles32

您可以在目标文件系统的任意位置部署执行服务和测试二进制文件,但是测试二进制文件需要在当前的工作目录中查找数据目录。准备就绪后,在目标设备上启动测试执行服务。有关如何启动服务的详细信息,请参阅测试执行服务一节。

命令行参数

下表列出了影响所有测试程序执行的命令行参数。

参数

说明

--deqp-case=

运行与指定模式匹配的用例。支持通配符 (*)。

--deqp-log-filename=

将测试结果写入文件,文件名由您提供。测试执行服务将在开始测试时设置文件名。

--deqp-stdin-caselist

--deqp-caselist=

--deqp-caselist-file=

通过 stdin 或指定的参数读取用例列表。测试执行服务将根据收到的执行请求设置参数。有关用例列表格式的说明,请参阅下一节。

--deqp-test-iteration-count=

覆盖迭代次数可变的测试的迭代计数。

--deqp-base-seed=

为采用随机测试的测试用例设定种子。

特定于 GLES2 及 GLES3 的参数

下表列出了特定于 GLES2 及 GLES3 的参数。

参数

说明

--deqp-gl-context-type=

OpenGL 上下文类型。提供的上下文类型取决于平台。在支持 EGL 的平台上,值 egl 可用于选择 EGL 上下文。

--deqp-gl-config-id=

对所提供的 GL 配置 ID 运行测试。解译取决于平台。在 EGL 平台上,该配置 ID 为 EGL 配置 ID。

--deqp-gl-config-name=

对已命名的 GL 配置运行测试。解译取决于平台。对于 EGL,格式为 rgb(a)ds。例如,值 rgb888s8 会选择第一个配置,其中颜色缓冲区为 RGB888,模板缓冲区为 8 位。

--deqp-gl-context-flags=

创建一个上下文。指定 robust 或 debug。

--deqp-surface-width=

--deqp-surface-height=

尝试使用指定的尺寸创建表面。对这项功能的支持为可选项。

--deqp-surface-type=

将指定的表面类型用作主测试渲染目标。可取类型为 window、pixmap、pbuffer 和 fbo。

--deqp-screen-rotation=

对于支持该参数的平台,屏幕方向的旋转增量为 90 度。

测试用例列表格式

测试用例列表有两种格式。第一种选项是在标准 ASCII 文件的单独一行中列出每个测试的全名。随着测试集的增长,重复添加前缀可能会很麻烦。为避免重复添加前缀,可使用以下所示的 trie(也称为前缀树)语法。

{nodeName{firstChild{…},…lastChild{…}}}

例如:

{dEQP-EGL{config-list,create_context{rgb565_depth_stencil}}}

会转换为以下两个测试用例:

dEQP-EGL.config_list

dEQP-EGL.create_context.rgb565_depth_stencil

Android

Android 应用包包含所需的所有组件,包括测试执行服务、测试二进制文件和数据文件。测试 Activity 是使用 EGL 的 NativeActivity(需要 Android 3.2 或更高版本)。

应用包可使用以下命令安装(所示名称为 Android CTS 包中 APK 的名称;该名称因版本而异):

adb –d install –r com.drawelements.deqp.apk

要启动测试执行服务并设置端口转发,请使用以下命令:

adb –d forward tcp:50016 tcp:50016

adb –d shell am start –n com.drawelements.deqp/.execserver.ServiceStarter

在开始测试之前,可执行以下命令来启用调试打印:

adb –d shell setprop log.tag.dEQP DEBUG

在没有 Android CTS 的 Android 设备上执行测试

要手动启动测试执行 Activity,请构建一个目标为 android.app.NativeActivity 的 Android Intent。这些 Activity 可以在 com.drawelements.deqp 包中找到。在 Intent 中,命令行必须以含 "cmdLine" 键的额外字符串提供。

测试日志会写入 /sdcard/dEQP-log.qpa。若测试运行无法正常启动,请查看设备日志,了解其他调试信息。

您可使用 am 实用程序从命令行启动 Activity。例如,要在支持 NativeActivity, 的平台上运行 dEQP-GLES2.info 测试,请执行以下命令。

adb -d shell am start -n com.drawelements.deqp/android.app.NativeActivity -e \

'cmdLine "deqp --deqp-case=dEQP-GLES2.info.* --deqp-log-filename=/sdcard/dEQP-Log.qpa"'

在 Android 系统上调试

要采用 Android 系统中的 GDB 调试器运行测试,首先要运行以下两个脚本来编译并安装调试版本:

python android/scripts/build.py --native-build-type=Debug

python android/scripts/install.py

当设备上安装调试版本后,要采用主机上运行的 GDB 启动测试,请运行以下命令:

python android/scripts/debug.py \

--deqp-commandline="--deqp-log-filename=/sdcard/TestLog.qpa --deqp-case=dEQP-GLES2.functional.*"

deqp 命令行取决于要执行的测试用例和其他所需参数。脚本会在开始执行 deqp 时添加一个默认断点 (tcu::App::App)。

debug.py 脚本接受多个命令行参数用于相关操作,例如:设置调试断点、gdbserver 连接参数及要调试的其他二进制文件的路径(对于所有参数和解释,都执行 debug.py

--help)。该脚本还会从目标设备中复制一些默认库,以获取符号列表。

要逐步检查驱动程序代码(例如,当 GDB 需要了解具有完整调试信息的二进制文件的位置时),请通过 debug.py 命令行参数添加更多的库。该脚本从脚本文件的第 132 行开始写出 GDB 的配置文件。您还可以提供额外的二进制路径等信息,但提供正确的命令行参数就已足够。

注意:在 Windows 上,GDB 二进制文件需要使用 libpython2.7.dll。在启动 debug.py 前,请将 /prebuilt/windows/bin 添加到 PATH 变量中。

注意:本机代码调试不适用于 Android 4.3 及之前的所有版本。有关解决方法,请参考此公开 Bug。Android 4.4 及更高版本不包含此 Bug。

android系统的测试方法,运行测试  |  Android 开源项目  |  Android Open Source Project...相关推荐

  1. 【开源项目----Android OPenGLES渲染YUV视频文件】

    [开源项目----Android OPenGLES渲染YUV视频文件] OpenGLES对YUV渲染相关文章参考

  2. 终于把鸿蒙说明白了,关于安卓系统、AOSP(安卓开源项目)和鸿蒙系统比较

    把鸿蒙说得很明白了,小白们不要给小米.蓝绿厂泼污水文忽悠了,以为鸿蒙就和当年的龙芯一样把鸿蒙说得很明白了,小白们不要给小米.蓝绿厂泼污水文忽悠了,以为鸿蒙就和当年的汉芯一样买芯片换掉商标就行! 关于安 ...

  3. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  4. android10分区镜像,分区和映像  |  Android 开源项目  |  Android Open Source Project

    分区 Android 设备包含若干个分区,这些分区在启动过程中发挥不同的作用.为了支持 A/B 更新,设备需要为 boot.system.vendor 和 radio 分区分别单独配置一个槽位. bo ...

  5. Android github上的好的开源项目汇总

    转自:http://blog.csdn.net/ithomer/article/details/8882236 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于 ...

  6. android的wifi直连,WLAN 直连  |  Android 开源项目  |  Android Open Source Project

    WLAN 直连功能又称"WLAN 点对点",它允许支持设备直接使用 WLAN 直连协议发现其他设备并与之互连(无需连接到互联网或移动网络).此功能是基于 Wi-Fi 联盟 (WFA ...

  7. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  8. android zip 开源 加密,Android带密码解压----Zip4J开源项目使用

    最近工作过程中,需要在Android项目中对一个带密码的压缩文件进行解压 ,之前就知道Java API中提供了 java.util.zip.*;包来支持Java对于压缩文件的相关压缩,解压缩操作.所以 ...

  9. android开机自动开启zram,低内存配置  |  Android 开源项目  |  Android Open Source Project...

    Android 支持内存为 512 MB 的设备.本文档旨在帮助 OEM 优化和配置 Android 内核 4.4,使其能够在低内存设备上运行.在下文所述的优化措施中,有几项非常通用,甚至也可应用于以 ...

最新文章

  1. C++中四种类型装换
  2. 科大星云诗社动态20210517
  3. 如何关闭SAP Fiori的病毒扫描设置
  4. _thread_in_vm_Java Thread类的静态void sleep(long time_in_ms,int time_in_ns)方法,带示例
  5. EF架构~了解一下,ADO.NET Entity Framework
  6. 解决HP t5335z瘦客户机休眠问题
  7. php日期控件calendar.js,轻量级的原生js日历插件calendar.js使用指南
  8. 南京大学软件测试复习
  9. TIFF图像文件格式分析
  10. click 简单易用的Python命令行
  11. 如何使用Python itchat库玩转微信, 统计好友信息, 设置自动回复和发送本地文件...
  12. ibm服务器卡在开机界面_使用HTTPS配置IBM Integration Bus Web用户界面
  13. 用Vue写的一个简易的待办事项清单系统
  14. 第一次使用Arduino MKR WIFI 1010
  15. 点云配准算法ICP及其各种变体
  16. Api2Doc,生成 Restful API 文档
  17. css动画--使用图标进行顺时针与逆时针转圈
  18. ubuntu进入系统黑屏问题
  19. Smart3d 近景摄影测量与航空摄影测量
  20. java gui 开发工具_用什么工具进行java GUI的开发?

热门文章

  1. 英飞凌AI越野组入门教程
  2. img下面的png图片 vs 读不出来_VUX中XImg组件加载图片不正确,BusPlugin不好使,求解...
  3. oracle数据库中insert,【Oracle】sql插入之 insert all、insert first
  4. go split 正则_WEGO使用—华大基因在线GO功能注释
  5. python-oracle,python与oracle(一)基本配置
  6. Linux 内核调试必备工具
  7. kettle 日志存到mysql_kettle作业(job)调用转换,设置变量,写日志到数据库中【转】...
  8. java 投票ip限制_java 限定网站在指定IP段访问
  9. layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)
  10. python面试题_Python面试题大全