2013-10-23 48 views
8

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

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

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

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

生成所需的DartConfiguration.tcl不管它是什么,然后再调用:

ctest -T memcheck 

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

相关问题