2013-10-23 44 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 

運行所有測試也檢查內存錯誤。

相關問題