10

我在 CMake 中有一个 C++ 项目,并且我已经实现了单元测试(使用 GoogleTest)以及集成测试,即执行应用程序并使用正则表达式检查结果,例如

add_test(NAME MyAppIntegration.testRefitRunMse COMMAND my_application "--refit=true")
set_tests_properties(MyAppIntegration.testRefitRunMse PROPERTIES PASS_REGULAR_EXPRESSION "mse\\=1\\.53611e\\-05")

现在我想做与上面相同的操作,但运行应用程序来检测内存错误,例如简单地运行./my_application并使用 valgrind 检查内存错误。我怎样才能做到这一点?请注意,我知道,ctest -D ExperimentalMemCheckctest -T memcheck在这里我得到了Cannot find file DartConfiguration.tcl似乎与我不需要的仪表板配置相关的错误。

4

1 回答 1

4

好的,我找到了一个可能的解决方案。将这些行添加到我的CMakeLists.txt

## valgrind
find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
INCLUDE(Dart)

生成所需的DartConfiguration.tcl任何内容,然后重新调用:

ctest -T memcheck

运行所有测试并检查内存错误。

于 2013-10-23T12:56:42.800 回答