草庐IT

android - Android 宋构建系统的 native 代码覆盖率

我正在尝试使用soong构建系统使用AOSP源代码为我的native组件生成代码覆盖率报告。我已经扩展了aospvhal但单元测试用例与下面的链接相同。http://androidxref.com/8.1.0_r33/xref/hardware/interfaces/automotive/vehicle/2.0/default/tests/尝试将以下内容添加到Android.bp中的cc_test、cc_binarynative_coverage:true,cflags:["-g","-O0","-fprofile-arcs","-ftest-coverage",],ldflags:[

c++ - LCOV 在函数末尾分支

这个函数的末尾有哪些分支。我该如何覆盖它们? 最佳答案 您正在观察gcc生成的用于销毁静态存储持续时间(全局)变量的代码。您的覆盖显示函数foo已被输入3次,但是范围末尾附近的计数器显示代码已执行8次,包括您查询的分支。现在您必须考虑编译器将头文件放在翻译单元中并且gcov不会完全按照原样查看您的代码,而是将其作为汇编指令的控制流图,分支作为图的边缘.因此,lcovhtml输出中的“foo作用域结束”实际上并不是foo方法作用域的结束,而是foo之后包含的所有内容以及整个翻译单元,包括销毁已在头文件中声明的全局变量。header本身

c++ - 为 gcov 编译 googletest

我想从我的googletest测试中获取覆盖率信息,但我找不到好的说明。我假设我应该编译我的gtest二进制文件,以便它吐出.gcno和.gcna文件。然而,编译器标志的组合似乎无法实现这一点。我尝试过在编译和链接时使用--coverage和-fprofile-arcs-ftest-coverage,但无济于事。我只是在整个方法中弄错了吗?googletest测试会像这样编译吗?为了完整起见,这里是整个makefile:#-*-indent-tabs-mode:t;-*-##VarsCXX=g++BDDOBJ=../objOBDD_DIR=../srcOBDD_INCLUDE=-I$(

c++ - gcov 与 CMake 使用单独的构建目录

我正在努力获取gcov的覆盖信息。编译和链接期间没有错误,但是当我运行可执行文件时,没有生成覆盖率数据。我将CMake与单独的构建目录一起使用,以这种方式将标志传递给编译器和链接器:add_definitions(--coverage)set(CMAKE_EXE_LINKER_FLAGS${CMAKE_EXE_LINKER_FLAGS}"--coverage")可执行文件是否期望源代码位于特定位置?我必须向我的CMakeLists.txt添加什么才能让事情顺利进行?亲切的问候,比约恩 最佳答案 CMake似乎将代码覆盖率(*.gcd

ios - 我如何让 XCode4 找到 libgcov.a

我一直在构建静态库以在多个iOS项目之间共享,我想使用gcov(或任何代码覆盖率分析工具)来告诉我哪里遗漏了我的测试。但是,当我按照以下说明启用gcov时:http://supermegaultragroovy.com/blog/2005/11/03/unit-testing-and-code-coverage-with-xcode/我从Libtool得到这个错误:/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool:can'tlocatefilefor:-lgcov/Developer/Plat

html - 寻找一种方法来排除 geninfo/genhtml 使用的文件

我们正在尝试使用geninfo和genhtml(替代gcovr,请参阅here)使用gcov提供的覆盖率生成html页面。geninfo从gcov的*.gcda文件创建lcov-tracefilesgenhtml从上述跟踪文件生成html文件然而,最终结果不仅包括我们的代码,还包括/usr/include中的文件。有谁知道排除这些的方法吗?我尝试查看手册页但找不到任何内容http://linux.die.net/man/1/geninfo 最佳答案 如果您只想忽略/usr/include中的文件,更好的选择可能是“--no-exte

html - 寻找一种方法来排除 geninfo/genhtml 使用的文件

我们正在尝试使用geninfo和genhtml(替代gcovr,请参阅here)使用gcov提供的覆盖率生成html页面。geninfo从gcov的*.gcda文件创建lcov-tracefilesgenhtml从上述跟踪文件生成html文件然而,最终结果不仅包括我们的代码,还包括/usr/include中的文件。有谁知道排除这些的方法吗?我尝试查看手册页但找不到任何内容http://linux.die.net/man/1/geninfo 最佳答案 如果您只想忽略/usr/include中的文件,更好的选择可能是“--no-exte

swift - 代码覆盖率是否已经适用于 Swift?

我正在尝试为Xcode6Beta4上的Swift应用程序设置测试代码覆盖率。过去我能够使用带有Xcode5的ObjectiveC来做到这一点,但是我认为我必须调用void__gcov_flush()方法来触发.gcda/.gcno文件的生成。我将应用程序和测试目标的检测和代码覆盖率属性都设置为YES。但是在运行测试之后,当我查看时:DerivedData/somesubfolders/i386我看到的都是以下类型的文件:.d、.dia、.o、.swiftmodule等等,但没有任何迹象表明代码覆盖率。因此我有两个问题:使用Xcode6beta4的代码覆盖率是否有望适用于Swift?如果

swift - 代码覆盖率是否已经适用于 Swift?

我正在尝试为Xcode6Beta4上的Swift应用程序设置测试代码覆盖率。过去我能够使用带有Xcode5的ObjectiveC来做到这一点,但是我认为我必须调用void__gcov_flush()方法来触发.gcda/.gcno文件的生成。我将应用程序和测试目标的检测和代码覆盖率属性都设置为YES。但是在运行测试之后,当我查看时:DerivedData/somesubfolders/i386我看到的都是以下类型的文件:.d、.dia、.o、.swiftmodule等等,但没有任何迹象表明代码覆盖率。因此我有两个问题:使用Xcode6beta4的代码覆盖率是否有望适用于Swift?如果

c - libgcov fork 和 exec 钩子(Hook)

我的gcc手册页声明了关于--coverage选项的声明:Also"fork"callsaredetectedandcorrectlyhandled(doublecountingwillnothappen).我注意到我的/usr/lib/gcc/x86_64-linux-gnu/5.4.0/libgcov.a包含符号__gcov_fork、__gcov_execl和其他__gcov_exec*变体。网上查了下这些函数的定义,貌似会dump和clearcoverage输出,避免数据重复或丢失。但这似乎对我不起作用:gcov_test$rm*.gcno*.gcdagcov_test$cat