1.获取AOSP的源码
具体可参考这篇:
下载,编译 AOSP
AOSP更新比较频繁,所以可以经常 repo sync
。
如果只需要调试CTS
,不用整编project
。
不过如果不整编project
,编译失败,可以试着先整编project
,再编译CTS
目录,或者再执行一次make cts
。
编译CTS可使用master分支,或其他较新的分支。切分支之前注意先切manifest。
2.使用adb查看android设备架构
getprop ro.product.cpu.abi
例如我这里的结果是
arm64-v8a
3.编译AOSP 中的CTS
进入 AOSP 根目录,加载环境变量,然后执行 make cts TARGET_PRODUCT=xxx
。因此我这里是 TARGET_PRODUCT=aosp_arm64
。
source build/envsetup.sh
make cts -j20 TARGET_PRODUCT=aosp_arm64 2>&1 | tee build.java
编译后的文件在out/host/linux-x86/cts
目录下。这里大概编译了2个小时左右,拉代码花的时间更久。
如果遇到编译错误,可执行再编译一次或者整编后make cts
。
4.简单执行单项测试命令,测试编译后的CTS是否能正常使用
进入 android-cts
下的tool
文件夹。
注意:请确保android设备和pc设备,均处于外网环境中。
设置 JAVA_TOOL_OPTIONS
使用代理,运行cts-tradefed
,然后 使用cts-tradefed脚本执行Junit单元测试。
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
./cts-tradefed
run cts -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.AdoptableHostTest#testPrimaryStorage
例如hostsidetests
文件夹下的module
。这里格式为:run cts -m module -t test
具体如下所示:
run cts -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.AdoptableHostTest#testPrimaryStorage
CtsAppSecurityHostTestCases
是 bp中定义的module
名称,android.appsecurity.cts.AdoptableHostTest#testPrimaryStorage
是AdoptableHostTest
这个类的testPrimaryStorage
函数。这是基于Junit
框架的。
测试完成后会显示Summary等信息。
=======================================================
=============== Summary ===============
Total Run time: 7m 11s
2/2 modules completed
Total Tests : 2
PASSED : 2
FAILED : 0
============== End of Results ==============
============================================
05-22 15:13:03 D/ProtoResultReporter: process final logs: /tmp/eng.user.20230522.123834/cts/inv_8391609024161279714/inv_15769068619178369783/end_host_log_16582464473696729006.txt
05-22 15:13:03 I/CommandScheduler: Updating command 1 with elapsed time 432045 ms
05-22 15:13:03 I/CommandScheduler: Finalizing the logger and invocation.
05-22 15:13:03 D/ActiveTrace: Finalizing trace: /tmp/invocation-trace6737819560881934439.perfetto-trace
05-22 15:13:03 D/ProtoResultReporter: process final logs: /tmp/eng.user.20230522.123834/cts/inv_8391609024161279714/inv_15769068619178369783/invocation-trace_17271980551630074065.perfetto-trace.gz
05-22 15:13:03 D/ProtoResultReporter: process final logs: /tmp/eng.user.20230522.123834/cts/inv_8391609024161279714/inv_15769068619178369783/invoc_complete_host_log_15517732044405125585.txt
results 文件夹下会生成时间节点文件夹,并生成html文件显示结果。
image.png也可以在latest文件夹下去查看,这个会显示最近的一个测试结果。
网友评论