编译AOSP CTS源码

2023-05-30  本文已影响0人  梧叶已秋声

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

image.png

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#testPrimaryStorageAdoptableHostTest这个类的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文件夹下去查看,这个会显示最近的一个测试结果。

参考链接:
Android CTS 测试---自己编译CTS方法
运行 CTS 测试
CTS 开发

上一篇下一篇

猜你喜欢

热点阅读