diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2021-10-26 16:51:44 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2021-10-26 16:51:44 (GMT) |
commit | 69f95cf1d93945ace09ee9a87c0185b1ee6e4a47 (patch) | |
tree | ad62afb6d54b53c5326a471088caf03a5e19c7f3 /Tests | |
parent | fb6ab54076217452e673ad310faba2a1a993366f (diff) | |
download | CMake-69f95cf1d93945ace09ee9a87c0185b1ee6e4a47.zip CMake-69f95cf1d93945ace09ee9a87c0185b1ee6e4a47.tar.gz CMake-69f95cf1d93945ace09ee9a87c0185b1ee6e4a47.tar.bz2 |
cmCTestRunTest: fix modifying non-existent envvars
When appending or modifying to a variable that has not been modified
before, the iterator was not valid, but it was used to insert into the
map again. Instead, just use indexing into the map since we know it will
exist by the end of the function anyways.
Fixes: #22796
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/Environment/CMakeLists.txt | 18 | ||||
-rw-r--r-- | Tests/Environment/check_mod.cmake | 8 |
2 files changed, 25 insertions, 1 deletions
diff --git a/Tests/Environment/CMakeLists.txt b/Tests/Environment/CMakeLists.txt index 17009bd..5f1edbf 100644 --- a/Tests/Environment/CMakeLists.txt +++ b/Tests/Environment/CMakeLists.txt @@ -45,6 +45,12 @@ set_property(TEST EchoEnvironment3 "STRING_MANIP=string_append:suffix" "STRING_MANIP=string_prepend:prefix" + # String manipulation on non-existent. + "STRING_DNE=string_append:post-" + "STRING_DNE=string_prepend:-pre" + "STRING_DNE=string_append:suffix" + "STRING_DNE=string_prepend:prefix" + # Path manipulation. "PATH_MANIP=set:core" "PATH_MANIP=path_list_append:post" @@ -52,10 +58,22 @@ set_property(TEST EchoEnvironment3 "PATH_MANIP=path_list_append:suffix" "PATH_MANIP=path_list_prepend:prefix" + # Path manipulation on non-existent. + "PATH_DNE=path_list_append:post" + "PATH_DNE=path_list_prepend:pre" + "PATH_DNE=path_list_append:suffix" + "PATH_DNE=path_list_prepend:prefix" + # CMake list manipulation. "CMAKE_LIST_MANIP=set:core" "CMAKE_LIST_MANIP=cmake_list_append:post" "CMAKE_LIST_MANIP=cmake_list_prepend:pre" "CMAKE_LIST_MANIP=cmake_list_append:suffix" "CMAKE_LIST_MANIP=cmake_list_prepend:prefix" + + # CMake list manipulation on non-existent. + "CMAKE_LIST_DNE=cmake_list_append:post" + "CMAKE_LIST_DNE=cmake_list_prepend:pre" + "CMAKE_LIST_DNE=cmake_list_append:suffix" + "CMAKE_LIST_DNE=cmake_list_prepend:prefix" ) diff --git a/Tests/Environment/check_mod.cmake b/Tests/Environment/check_mod.cmake index 16d02f2..179bd7a 100644 --- a/Tests/Environment/check_mod.cmake +++ b/Tests/Environment/check_mod.cmake @@ -20,12 +20,18 @@ set(expect_DIRECT "new") set(expect_STRING_MANIP "prefix-pre-core-post-suffix") set(expect_PATH_MANIP "prefix${path_sep}pre${path_sep}core${path_sep}post${path_sep}suffix") 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(expected_vars DIRECT STRING_MANIP PATH_MANIP - CMAKE_LIST_MANIP) + CMAKE_LIST_MANIP + STRING_DNE + PATH_DNE + CMAKE_LIST_DNE) while (out) string(FIND "${out}" "\n" nl_pos) |