|
|
@@ -1,26 +1,42 @@
|
|
|
include(RunCMake)
|
|
|
include(RunCTest)
|
|
|
|
|
|
-function(run_cmake_recursive name)
|
|
|
- set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
- run_cmake(${name}-default)
|
|
|
- unset(RunCMake_TEST_OPTIONS)
|
|
|
- set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
- run_cmake(${name}-var)
|
|
|
- unset(RunCMake_TEST_OPTIONS)
|
|
|
- set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a)
|
|
|
- run_cmake(${name}-invalid-var)
|
|
|
- unset(RunCMake_TEST_OPTIONS)
|
|
|
+# Isolate this test from the caller's environment.
|
|
|
+unset(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH})
|
|
|
|
|
|
+function(run_cmake_recursive name)
|
|
|
+ run_cmake_with_options(${name}-default "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
run_cmake_command(${name}-default-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
|
|
|
+
|
|
|
+ set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} 5) # overridden, not used
|
|
|
+ run_cmake_with_options(${name}-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
+ run_cmake_with_options(${name}-invalid-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a)
|
|
|
run_cmake_command(${name}-var-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10 -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
|
|
|
run_cmake_command(${name}-invalid-var-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
|
|
|
+
|
|
|
+ set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} 10)
|
|
|
+ run_cmake_with_options(${name}-env "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
+ run_cmake_command(${name}-env-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
|
|
|
+
|
|
|
+ set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} a)
|
|
|
+ run_cmake_with_options(${name}-invalid-env "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
+ run_cmake_command(${name}-invalid-env-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
|
|
|
+
|
|
|
+ unset(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH})
|
|
|
endfunction()
|
|
|
|
|
|
function(run_ctest_recursive name)
|
|
|
run_ctest(${name}-default "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
run_ctest(${name}-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
run_ctest(${name}-invalid-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a)
|
|
|
+
|
|
|
+ set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} 10)
|
|
|
+ run_ctest(${name}-env "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
+
|
|
|
+ set(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH} a)
|
|
|
+ run_ctest(${name}-invalid-env "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
|
|
|
+
|
|
|
+ unset(ENV{CMAKE_MAXIMUM_RECURSION_DEPTH})
|
|
|
endfunction()
|
|
|
|
|
|
run_cmake_recursive(function)
|
|
|
@@ -32,12 +48,8 @@ run_cmake_recursive(variable_watch)
|
|
|
# We run these tests separately and only with a small limit because they are
|
|
|
# taxing and slow. The "implicit" and "invalid" cases are already thoroughly
|
|
|
# covered by the other tests above.
|
|
|
-set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=add_subdirectory -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
-run_cmake(add_subdirectory-var)
|
|
|
-unset(RunCMake_TEST_OPTIONS)
|
|
|
-set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=try_compile -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
-run_cmake(try_compile-var)
|
|
|
-unset(RunCMake_TEST_OPTIONS)
|
|
|
+run_cmake_with_options(add_subdirectory-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=add_subdirectory -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
+run_cmake_with_options(try_compile-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=try_compile -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
|
|
|
|
|
|
run_ctest_recursive(ctest_read_custom_files)
|
|
|
|