mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-24 00:39:03 -05:00
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:
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user