Merge topic 'envmod-support-mod-to-new-variables'

69f95cf1d9 cmCTestRunTest: fix modifying non-existent envvars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6663
This commit is contained in:
Brad King
2021-10-27 13:20:30 +00:00
committed by Kitware Robot
3 changed files with 27 additions and 7 deletions
+2 -6
View File
@@ -800,13 +800,9 @@ bool cmCTestRunTest::ForkProcess(
auto apply_diff =
[&env_application](const std::string& name,
std::function<void(std::string&)> const& apply) {
auto entry = env_application.find(name);
std::string output;
if (entry != env_application.end() && entry->second) {
output = *entry->second;
}
std::string output = env_application[name].value_or(std::string{});
apply(output);
entry->second = output;
env_application[name] = output;
};
bool err_occurred = false;
+18
View File
@@ -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"
)
+7 -1
View File
@@ -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)