【发布时间】:2019-06-22 15:39:19
【问题描述】:
我正在尝试使用 soong 构建系统使用 AOSP 源代码为我的本机组件生成代码覆盖率报告。
我已经扩展了 aosp vhal 但单元测试用例与下面的链接相同。 http://androidxref.com/8.1.0_r33/xref/hardware/interfaces/automotive/vehicle/2.0/default/tests/
尝试将以下内容添加到 Android.bp 中的 cc_test、cc_binary
native_coverage : true,
cflags: [
"-g",
"-O0",
"-fprofile-arcs",
"-ftest-coverage",
],
ldflags : [
"-fprofile-arcs",
"-ftest-coverage",
],
本机二进制 unit-tests-coverage 在 out/target/product 中生成,但我找不到 gcno 中间体。
运行下面的命令会给我每个测试文件的 *.gcda 文件。
adb shell \
GCOV_PREFIX=/data/local/tmp \
GCOV_PREFIX_STRIP=`echo $ANDROID_BUILD_TOP | grep -o / | wc -l` \
/data/local/tmp/unit-tests-coverage
我尝试了以下链接,但不知道如何继续:(
http://logan.tw/posts/2015/04/28/check-code-coverage-with-clang-and-lcov/ https://android.googlesource.com/platform/bionic.git/+/master-soong https://android.googlesource.com/platform/build/soong/+/581341d%5E%21/ https://android.googlesource.com/platform/external/e2fsprogs/+/fedfb27%5E%21/ https://android.googlesource.com/platform/development/+/master/scripts/acov#23 http://androidxref.com/9.0.0_r3/xref/bionic/README.md#293
我不确定是否可以在这里使用 google 的 vts 框架来生成本机代码覆盖率。 https://codelabs.developers.google.com/codelabs/android-vts-8/#6
"gcnodir" 已生成,但不知道如何使用它。 /coverage/data/nativetest64/vehicle-unit-tests-coverage/unit-tests-coverage.gcnodir
【问题讨论】:
-
我也在寻找解决方案,有更新吗?
-
"gcnodir" 实际上是一个 zip 文件,您可以将其解压缩然后获取 .gcno 文件。但我不知道该怎么做。
-
检查我的答案@Ted
标签: android code-coverage android-source gcov android-soong