summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/ctest_start
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2018-01-25 19:04:12 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2018-01-26 14:27:22 (GMT)
commit74092d92bffa26b0e17da638dabcbc462c3f407a (patch)
treef12f7c866e358a25094acd17c41d11e9e75804bd /Tests/RunCMake/ctest_start
parent7c30a3a3c321575ee8f3bd82b9e617456c2a7396 (diff)
downloadCMake-74092d92bffa26b0e17da638dabcbc462c3f407a.zip
CMake-74092d92bffa26b0e17da638dabcbc462c3f407a.tar.gz
CMake-74092d92bffa26b0e17da638dabcbc462c3f407a.tar.bz2
cmCTestScriptHandler: Add new field ShouldRunCurrentScript
This is to avoid scope issues with CTEST_RUN_CURRENT_SCRIPT. If ctest_start() is called within a function scope, the value of CTEST_RUN_CURRENT_SCRIPT that it sets doesn't make it to the global scope. With this change, ctest_start() no longer sets CTEST_RUN_CURRENT_SCRIPT, and instead sets a field directly in cmCTestScriptHandler. The old behavior of CTEST_RUN_CURRENT_SCRIPT has also been kept for projects and tests that rely on setting it.
Diffstat (limited to 'Tests/RunCMake/ctest_start')
-rw-r--r--Tests/RunCMake/ctest_start/FunctionScope-stdout.txt1
-rw-r--r--Tests/RunCMake/ctest_start/RunCMakeTest.cmake2
-rw-r--r--Tests/RunCMake/ctest_start/test.cmake.in10
3 files changed, 12 insertions, 1 deletions
diff --git a/Tests/RunCMake/ctest_start/FunctionScope-stdout.txt b/Tests/RunCMake/ctest_start/FunctionScope-stdout.txt
new file mode 100644
index 0000000..10f3293
--- /dev/null
+++ b/Tests/RunCMake/ctest_start/FunctionScope-stdout.txt
@@ -0,0 +1 @@
+^$
diff --git a/Tests/RunCMake/ctest_start/RunCMakeTest.cmake b/Tests/RunCMake/ctest_start/RunCMakeTest.cmake
index d630a79..bf47256 100644
--- a/Tests/RunCMake/ctest_start/RunCMakeTest.cmake
+++ b/Tests/RunCMake/ctest_start/RunCMakeTest.cmake
@@ -11,6 +11,8 @@ run_ctest_start(StartQuiet Experimental QUIET)
run_ctest_start(ConfigInSource Experimental)
+run_ctest_start(FunctionScope Experimental QUIET)
+
function(run_ConfigInBuild)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/ConfigInBuild-build)
set(RunCMake_TEST_NO_CLEAN 1)
diff --git a/Tests/RunCMake/ctest_start/test.cmake.in b/Tests/RunCMake/ctest_start/test.cmake.in
index 21e3fad..0a27942 100644
--- a/Tests/RunCMake/ctest_start/test.cmake.in
+++ b/Tests/RunCMake/ctest_start/test.cmake.in
@@ -9,5 +9,13 @@ set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@")
set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
+function(setup_tests)
+ ctest_start(${ctest_start_args})
+endfunction()
+
set(ctest_start_args "@CASE_CTEST_START_ARGS@")
-ctest_start(${ctest_start_args})
+if("@CASE_NAME@" STREQUAL "FunctionScope")
+ setup_tests()
+else()
+ ctest_start(${ctest_start_args})
+endif()