88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| include(RunCTest)
 | |
| 
 | |
| # Isolate our ctest runs from external environment.
 | |
| unset(ENV{CTEST_PARALLEL_LEVEL})
 | |
| unset(ENV{CTEST_OUTPUT_ON_FAILURE})
 | |
| 
 | |
| function(run_ctest_test CASE_NAME)
 | |
|   set(CASE_CTEST_FIXTURES_ARGS "${ARGN}")
 | |
|   run_ctest(${CASE_NAME})
 | |
| endfunction()
 | |
| 
 | |
| #------------------------------------------------------------
 | |
| # CMake configure will pass
 | |
| #------------------------------------------------------------
 | |
| run_ctest_test(one      INCLUDE one)
 | |
| run_ctest_test(two      INCLUDE two)
 | |
| run_ctest_test(three    INCLUDE three)
 | |
| run_ctest_test(setupFoo INCLUDE setupFoo)
 | |
| run_ctest_test(wontRun  INCLUDE wontRun)
 | |
| run_ctest_test(unused   INCLUDE Unused)
 | |
| 
 | |
| run_ctest_test(exclude_setup_foo
 | |
|     INCLUDE               "one|two"
 | |
|     EXCLUDE_FIXTURE_SETUP "Foo"
 | |
| )
 | |
| 
 | |
| run_ctest_test(exclude_setup_bar
 | |
|     INCLUDE               "one|two"
 | |
|     EXCLUDE_FIXTURE_SETUP "Bar"
 | |
| )
 | |
| 
 | |
| run_ctest_test(exclude_cleanup_foo
 | |
|     INCLUDE                 "one|two"
 | |
|     EXCLUDE_FIXTURE_CLEANUP "Foo"
 | |
| )
 | |
| 
 | |
| run_ctest_test(exclude_cleanup_bar
 | |
|     INCLUDE                 "one|two"
 | |
|     EXCLUDE_FIXTURE_CLEANUP "Bar"
 | |
| )
 | |
| 
 | |
| run_ctest_test(exclude_any_foo
 | |
|     INCLUDE         "one|two"
 | |
|     EXCLUDE_FIXTURE "Foo"
 | |
| )
 | |
| 
 | |
| run_ctest_test(exclude_any_bar
 | |
|     INCLUDE         "one|two"
 | |
|     EXCLUDE_FIXTURE "Bar"
 | |
| )
 | |
| 
 | |
| run_ctest_test(exclude_any_foobar
 | |
|     INCLUDE         "one|two"
 | |
|     EXCLUDE_FIXTURE "Foo|Bar"
 | |
| )
 | |
| 
 | |
| #------------------------------------------------------------
 | |
| # CMake configure will fail due to cyclic test dependencies
 | |
| #------------------------------------------------------------
 | |
| set(CASE_CMAKELISTS_CYCLIC_CODE [[
 | |
|     set_tests_properties(cyclicSetup PROPERTIES
 | |
|                          FIXTURES_SETUP    "Foo"
 | |
|                          FIXTURES_REQUIRED "Foo")
 | |
| ]])
 | |
| run_ctest(cyclicSetup)
 | |
| 
 | |
| set(CASE_CMAKELISTS_CYCLIC_CODE [[
 | |
|     set_tests_properties(cyclicCleanup PROPERTIES
 | |
|                          FIXTURES_CLEANUP  "Foo"
 | |
|                          FIXTURES_REQUIRED "Foo")
 | |
| ]])
 | |
| run_ctest(cyclicCleanup)
 | |
| 
 | |
| #------------------------------------------------------------
 | |
| # Repeat some of the exclusion tests with ctest command line
 | |
| # options instead of arguments to ctest_test(). This verifies
 | |
| # that the command line options make it through as well.
 | |
| #------------------------------------------------------------
 | |
| unset(CASE_CMAKELISTS_CYCLIC_CODE)
 | |
| set(CASE_CTEST_FIXTURES_ARGS "")
 | |
| 
 | |
| run_ctest(exclude_setup_foo -R "one|two" -FS Foo)
 | |
| run_ctest(exclude_setup_foo -R "one|two" --fixture-exclude-setup Foo)
 | |
| run_ctest(exclude_cleanup_foo -R "one|two" -FC Foo)
 | |
| run_ctest(exclude_cleanup_foo -R "one|two" --fixture-exclude-cleanup Foo)
 | |
| run_ctest(exclude_any_foo -R "one|two" -FA Foo)
 | |
| run_ctest(exclude_any_foo -R "one|two" --fixture-exclude-any Foo)
 |