include(RunCTest) function(run_DisableNotRunTest) set(CASE_CMAKELISTS_SUFFIX_CODE [[ add_test(NAME DisabledTest COMMAND notACommand --version) add_test(NAME NotRunTest COMMAND invalidCommand --version) set_tests_properties(SuccessfulTest PROPERTIES DISABLED false) set_tests_properties(DisabledTest PROPERTIES DISABLED true) ]]) run_ctest(DisableNotRunTest) endfunction() run_DisableNotRunTest() function(run_DisableFailingTest) set(CASE_CMAKELISTS_SUFFIX_CODE [[ set(someFile "${CMAKE_CURRENT_SOURCE_DIR}/test.cmake") add_test(NAME FailingTest COMMAND ${CMAKE_COMMAND} -E compare_files "${someFile}" "${someFile}xxx") add_test(NAME DisabledFailingTest COMMAND ${CMAKE_COMMAND} -E compare_files "${someFile}" "${someFile}xxx") set_tests_properties(FailingTest PROPERTIES DISABLED false) set_tests_properties(DisabledFailingTest PROPERTIES DISABLED true) ]]) run_ctest(DisableFailingTest) endfunction() run_DisableFailingTest() function(run_DisableSetupTest) set(CASE_CMAKELISTS_SUFFIX_CODE [[ add_test(NAME DisabledTest COMMAND "${CMAKE_COMMAND}" --version) add_test(NAME SuccessfulCleanupTest COMMAND "${CMAKE_COMMAND}" --version) set_tests_properties(DisabledTest PROPERTIES DISABLED true FIXTURES_SETUP "Foo") set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_REQUIRED "Foo") set_tests_properties(SuccessfulCleanupTest PROPERTIES FIXTURES_CLEANUP "Foo") ]]) run_ctest(DisableSetupTest) endfunction() run_DisableSetupTest() function(run_DisableRequiredTest) set(CASE_CMAKELISTS_SUFFIX_CODE [[ add_test(NAME DisabledTest COMMAND "${CMAKE_COMMAND}" --version) add_test(NAME SuccessfulCleanupTest COMMAND "${CMAKE_COMMAND}" --version) set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_SETUP "Foo") set_tests_properties(DisabledTest PROPERTIES DISABLED true FIXTURES_REQUIRED "Foo") set_tests_properties(SuccessfulCleanupTest PROPERTIES FIXTURES_CLEANUP "Foo") ]]) run_ctest(DisableRequiredTest) endfunction() run_DisableRequiredTest() function(run_DisableCleanupTest) set(CASE_CMAKELISTS_SUFFIX_CODE [[ add_test(NAME CleanupTest COMMAND "${CMAKE_COMMAND}" --version) set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_REQUIRED "Foo") set_tests_properties(CleanupTest PROPERTIES DISABLED true FIXTURES_CLEANUP "Foo") ]]) run_ctest(DisableCleanupTest) endfunction() run_DisableCleanupTest() # Consider a fixture that has a setup test, a cleanup test and a disabled test # which requires that fixture. Limit the test list with a regular expression # that matches the disabled test but not the setup or cleanup tests, so the # initial set of tests to be executed contains just the disabled test. Since # the only test requiring the fixture is disabled, CTest should not # automatically add in the setup and cleanup tests for the fixture, since no # enabled test requires them. function(run_DisableAllTests) set(CASE_CMAKELISTS_SUFFIX_CODE [[ add_test(NAME SetupTest COMMAND "${CMAKE_COMMAND}" --version) add_test(NAME CleanupTest COMMAND "${CMAKE_COMMAND}" --version) set_tests_properties(SetupTest PROPERTIES FIXTURES_SETUP "Foo") set_tests_properties(SuccessfulTest PROPERTIES DISABLED true FIXTURES_REQUIRED "Foo") set_tests_properties(CleanupTest PROPERTIES FIXTURES_CLEANUP "Foo") ]]) run_ctest(DisableAllTests -R Successful) endfunction() run_DisableAllTests()