summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRolf Eike Beer <eike@sf-mail.de>2013-05-09 10:24:09 (GMT)
committerRolf Eike Beer <eike@sf-mail.de>2013-05-09 17:25:50 (GMT)
commit159c3e91ac0abc386ff363ed3382105de7143339 (patch)
treeab2f1061b4c9c89a4dc2fa1daf0a5637d8d4eedd
parent61ddb9319b8b0d7182d9812df03b88b5d8e57c1d (diff)
downloadCMake-159c3e91ac0abc386ff363ed3382105de7143339.zip
CMake-159c3e91ac0abc386ff363ed3382105de7143339.tar.gz
CMake-159c3e91ac0abc386ff363ed3382105de7143339.tar.bz2
Tests: add a test with custom options passed to valgrind
-rw-r--r--Tests/CTestTestMemcheck/CMakeLists.txt9
-rw-r--r--Tests/CTestTestMemcheck/memtester.cxx.in6
2 files changed, 15 insertions, 0 deletions
diff --git a/Tests/CTestTestMemcheck/CMakeLists.txt b/Tests/CTestTestMemcheck/CMakeLists.txt
index fc3b01e..1c0c3b2 100644
--- a/Tests/CTestTestMemcheck/CMakeLists.txt
+++ b/Tests/CTestTestMemcheck/CMakeLists.txt
@@ -101,6 +101,12 @@ set(CTEST_EXTRA_CONFIG "set(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE \"\${CMAKE_CURRE
unset(CMAKELISTS_EXTRA_CODE)
gen_mc_test(DummyValgrindInvalidSupFile "\${PSEUDO_VALGRIND}")
+# CTest will add the logfile option as last option. Tell the dummy memcheck
+# to ignore that argument. This will cause the logfile to be missing, which
+# will be the prove for us that the custom option is indeed used.
+set(CTEST_EXTRA_CONFIG "set(CTEST_MEMORYCHECK_COMMAND_OPTIONS \"--\")")
+gen_mc_test(DummyValgrindCustomOptions "\${PSEUDO_VALGRIND}")
+
unset(CTEST_EXTRA_CONFIG)
gen_mc_test(NotExist "\${CTEST_BINARY_DIRECTORY}/no-memcheck-exe")
@@ -141,3 +147,6 @@ set_tests_properties(CTestTestMemcheckDummyBC PROPERTIES
set_tests_properties(CTestTestMemcheckDummyValgrindInvalidSupFile PROPERTIES
PASS_REGULAR_EXPRESSION "\nCannot find memory checker suppression file: ${CMAKE_CURRENT_BINARY_DIR}/does-not-exist\n")
+
+set_tests_properties(CTestTestMemcheckDummyValgrindCustomOptions PROPERTIES
+ PASS_REGULAR_EXPRESSION "\nCannot find memory tester output file: ${CMAKE_CURRENT_BINARY_DIR}/DummyValgrindCustomOptions/Testing/Temporary/MemoryChecker.log\n(.*\n)?Error in read script: ${CMAKE_CURRENT_BINARY_DIR}/DummyValgrindCustomOptions/test.cmake\n")
diff --git a/Tests/CTestTestMemcheck/memtester.cxx.in b/Tests/CTestTestMemcheck/memtester.cxx.in
index 64b72d3..4609fa3 100644
--- a/Tests/CTestTestMemcheck/memtester.cxx.in
+++ b/Tests/CTestTestMemcheck/memtester.cxx.in
@@ -28,6 +28,12 @@ main(int argc, char **argv)
std::string logfile;
for (int i = 1; i < argc; i++) {
std::string arg = argv[i];
+ // stop processing options, this allows to force
+ // the logfile to be ignored
+ if (arg == "--")
+ {
+ break;
+ }
if (arg.find(logarg) == 0)
{
if (nextarg)