我想在命令行中使用ctest运行我的测试,并传入memcheck的参数。
我可以运行
但是,我似乎找不到一种方法来传递那个memcheck命令的参数,比如
阅读了ctest的文档后,我尝试使用
我该如何从 ctest 命令行控制 memcheck 命令?
我可以运行
ctest -R my_test
来运行我的测试,甚至可以通过ctest -R my_test -T memcheck
用memcheck运行它。但是,我似乎找不到一种方法来传递那个memcheck命令的参数,比如
--leak-check=full
或--suppressions=/path/to/file
。阅读了ctest的文档后,我尝试使用
-D
选项与CTEST_MEMCHECK_COMMAND_OPTIONS
和MEMCHECK_COMMAND_OPTIONS
。我还尝试将这些设置为环境变量。我的所有尝试都没有产生任何不同的测试命令。它总是:Memory check command: /path/to/valgrind "--log-file=/path/to/build/Testing/Temporary/MemoryChecker.7.log" "-q" "--tool=memcheck" "--leak-check=yes" "--show-reachable=yes" "--num-callers=50"
我该如何从 ctest 命令行控制 memcheck 命令?
overwrite MemoryCheckSuppressionFile=/path/to/valgrind.suppressions
并不是很有用,因为它需要一个绝对路径。我还没有找到在Cmake文件中实现set(MEMORYCHECK_SUPPRESSIONS_FILE "${PROJECT_SOURCE_DIR}/.valgrind-suppressions")
的等效方法。 - alfC