tests工具学习文档

1 测试工具的实现
1.1 调研目的
    目前正在进行针对Unicore架构的Dalvik虚拟机改写,为了保证整个Android操作系统在Unicore上的正常运行,我们试图先独立测试改写后的Dalvik虚拟机;而Android2.1源码中包含了dalvik虚拟机的测试工具,其目录位于/android2.1/dalvik/tests下,我们先对它进行调研,看能否用它来测试我们改写后的dalvik虚拟机。
    调研分为三部分进行,首先了解该测试工具的实现方式,其次介绍它的使用方法,最后评估用它测试修改后的dalvik虚拟机的可行性。
1.2 tests简介
首先分析/android2.1/dalvik/tests目录的结构:
-tests dalvik测试工具和测试代码文件夹。
--001——078   文件夹,保存了78个测试代码,主要由/src/*.java(测试所需代码)
以及xpected.txt(测试期望结果文档)和info.txt(测试说明文档);
--ect     试工具的最终实现脚本,用Linux shell命令格式写成;
--run-all-tests   执行文件,测试所有78个测试代码;
--run-test   可执行文件,指定参数来测试特定的测试代码。

1.3 测试工具的实现
    通过上节的介绍,要理解测试工具是如何实现对dalvik虚拟机的测试,就必须理解run-test可执行文件(run-all-tests可以看做是逐一调用run-tests),下面将具体介绍该可执行文件的实现方式。
1.3.1 run-test的参数
1.3.1.1 综述
    进入/android2.1/dalvik/tests,在Linux shell下输入命令:
./run-test –help
    可以出现使用帮助,罗列并解释如下:
run-test –help        打印帮助信息
run-test [options] [test-name]    正常运行命令的格式
run-test --dev [options] [test-name]    开发模式(运行结果dump到stdout)
run-test --update [options] [test-name] 更新模式(运行结果代替expect.txt)
运行参数:
--fast    使用快速解释器(默认)
   -jit     使用JIT
   --portable   使用可移植的解释器
   --debug    等待调试器的连接
   --no-verify   关闭校对功能(默认打开)
   --no-optimize     关闭代码优化功能(默认打开)
   --no-precise   关闭精确GC功能(默认打开)
   --zygote    从Zygote进程创建当前进程,如果使用,当前运行参数会被忽视
--local    使用主机-本地(host-local)模拟器
--valgrind    本地运行时使用内存监测
--reference   使用主机-本地参考(host-local reference)模拟器

通过帮助信息我们了解到,run-test有正常模式、开发模式、更新模式三种模式和多种参数,下面对参数的含义进行更详细的说明,并评估了该参数对于我们使用本测试工具的价值,在下文中我们根据需要进一步调研一部分参数:
参数                                                含义                                                                              价值
fast                              dalvik的解释器采用快速解释器,与可移植型解释器相对                     高
jit                                  android2.2开始采用的jit技术                                                               低
portable                       dalvik解释器采用可移植型解释器,与快速解释器相对                         高
debug                         调试用,等待调试器连接                                                                     高
verify                          dexopt的校对模式,dexopt用于dex代码的优化                                    中
optimize                       dexopt的优化模式                                                                                中
precise                        GC管理的一个选项                                                                              低
zygote                         直接从Zygote进程创建测试进程                                                          中
local                             使用local设备(不是host上的虚拟机)来测试                                     高
valgrind                       --local并且添加了内存管理的东西                                                        低
reference                    可使用host上的模拟器,模拟local设备的虚拟机进行测试                    高

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwjsz.html