summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2021-10-29 13:50:41 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2021-10-29 14:54:02 (GMT)
commit7d52d48a329d6a1c456b48f63c980cce799f3a9c (patch)
tree5f924910ba27f6b9445a9c6eac14a755305175af /Tests
parent4572c40df58465b17ca4ed29e7e741725c00db7f (diff)
downloadCMake-7d52d48a329d6a1c456b48f63c980cce799f3a9c.zip
CMake-7d52d48a329d6a1c456b48f63c980cce799f3a9c.tar.gz
CMake-7d52d48a329d6a1c456b48f63c980cce799f3a9c.tar.bz2
cmCTestRunTest: get the default value from the environment
This only works due to some assumptions about how the `ENVIRONMENT` property is processed. Comments have been added to notify anyone modifying the behavior about where to look. Fixes: #22819
Diffstat (limited to 'Tests')
-rw-r--r--Tests/Environment/CMakeLists.txt16
-rw-r--r--Tests/Environment/check_mod.cmake9
2 files changed, 25 insertions, 0 deletions
diff --git a/Tests/Environment/CMakeLists.txt b/Tests/Environment/CMakeLists.txt
index 5f1edbf..9397bfe 100644
--- a/Tests/Environment/CMakeLists.txt
+++ b/Tests/Environment/CMakeLists.txt
@@ -27,7 +27,23 @@ set_tests_properties(Environment2 EchoEnvironment2 PROPERTIES
)
set_property(TEST EchoEnvironment3
+ PROPERTY ENVIRONMENT
+ "SET_FROM_ENVIRONMENT_PROPERTY_unset=base"
+ "SET_FROM_ENVIRONMENT_PROPERTY_replace=base"
+ "SET_FROM_ENVIRONMENT_PROPERTY_string=base"
+ "SET_FROM_ENVIRONMENT_PROPERTY_path=base"
+ "SET_FROM_ENVIRONMENT_PROPERTY_list=base"
+)
+
+set_property(TEST EchoEnvironment3
PROPERTY ENVIRONMENT_MODIFICATION
+ # Modifying variables set in the `ENVIRONMENT` property.
+ "SET_FROM_ENVIRONMENT_PROPERTY_unset=unset:"
+ "SET_FROM_ENVIRONMENT_PROPERTY_replace=set:new"
+ "SET_FROM_ENVIRONMENT_PROPERTY_string=string_append:new"
+ "SET_FROM_ENVIRONMENT_PROPERTY_path=path_list_append:new"
+ "SET_FROM_ENVIRONMENT_PROPERTY_list=cmake_list_append:new"
+
# Variables expected to be unset.
"UNSET_EXPLICIT=set:value"
"UNSET_EXPLICIT=unset:"
diff --git a/Tests/Environment/check_mod.cmake b/Tests/Environment/check_mod.cmake
index 179bd7a..0691b17 100644
--- a/Tests/Environment/check_mod.cmake
+++ b/Tests/Environment/check_mod.cmake
@@ -14,6 +14,7 @@ else ()
set(path_sep ":")
endif ()
+set(unexpect_SET_FROM_ENVIRONMENT_PROPERTY_unset "")
set(unexpect_UNSET_EXPLICIT "")
set(unexpect_UNSET_VIA_RESET "")
set(expect_DIRECT "new")
@@ -23,8 +24,16 @@ set(expect_CMAKE_LIST_MANIP "prefix;pre;core;post;suffix")
set(expect_STRING_DNE "prefix-prepost-suffix")
set(expect_PATH_DNE "prefix${path_sep}pre${path_sep}post${path_sep}suffix")
set(expect_CMAKE_LIST_DNE "prefix;pre;post;suffix")
+set(expect_SET_FROM_ENVIRONMENT_PROPERTY_replace "new")
+set(expect_SET_FROM_ENVIRONMENT_PROPERTY_string "basenew")
+set(expect_SET_FROM_ENVIRONMENT_PROPERTY_path "base${path_sep}new")
+set(expect_SET_FROM_ENVIRONMENT_PROPERTY_list "base;new")
set(expected_vars
+ SET_FROM_ENVIRONMENT_PROPERTY_replace
+ SET_FROM_ENVIRONMENT_PROPERTY_string
+ SET_FROM_ENVIRONMENT_PROPERTY_path
+ SET_FROM_ENVIRONMENT_PROPERTY_list
DIRECT
STRING_MANIP
PATH_MANIP