From 77ea15b7972b13ca5448dcd9d17467833ed790d5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 7 Oct 2025 11:51:19 -0400 Subject: [PATCH] Tests: Add case covering `cmake -E env` with empty environment variable Issue: #27285 --- Tests/RunCMake/CommandLine/E_env-empty-stdout.txt | 1 + Tests/RunCMake/CommandLine/E_env-empty.cmake | 5 +++++ Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 1 + 3 files changed, 7 insertions(+) create mode 100644 Tests/RunCMake/CommandLine/E_env-empty-stdout.txt create mode 100644 Tests/RunCMake/CommandLine/E_env-empty.cmake diff --git a/Tests/RunCMake/CommandLine/E_env-empty-stdout.txt b/Tests/RunCMake/CommandLine/E_env-empty-stdout.txt new file mode 100644 index 0000000000..cb78849579 --- /dev/null +++ b/Tests/RunCMake/CommandLine/E_env-empty-stdout.txt @@ -0,0 +1 @@ +^-- TEST_ENV is correctly set in environment: ''$ diff --git a/Tests/RunCMake/CommandLine/E_env-empty.cmake b/Tests/RunCMake/CommandLine/E_env-empty.cmake new file mode 100644 index 0000000000..17ade984d2 --- /dev/null +++ b/Tests/RunCMake/CommandLine/E_env-empty.cmake @@ -0,0 +1,5 @@ +if(DEFINED ENV{TEST_ENV}) + message(STATUS "TEST_ENV is correctly set in environment: '$ENV{TEST_ENV}'") +else() + message(FATAL_ERROR "TEST_ENV is incorrectly not set in environment") +endif() diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index 10065715b2..c198881693 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -820,6 +820,7 @@ run_cmake_command(E_env-no-command0 ${CMAKE_COMMAND} -E env) run_cmake_command(E_env-no-command1 ${CMAKE_COMMAND} -E env TEST_ENV=1) run_cmake_command(E_env-bad-arg1 ${CMAKE_COMMAND} -E env -bad-arg1) run_cmake_command(E_env-set ${CMAKE_COMMAND} -E env TEST_ENV=1 ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-set.cmake) +run_cmake_command(E_env-empty ${CMAKE_COMMAND} -E env TEST_ENV= ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-empty.cmake) run_cmake_command(E_env-unset ${CMAKE_COMMAND} -E env TEST_ENV=1 ${CMAKE_COMMAND} -E env --unset=TEST_ENV ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/E_env-unset.cmake) run_cmake_command(E_env-stdin ${CMAKE_COMMAND} -DPRINT_STDIN_EXE=${PRINT_STDIN_EXE} -P ${RunCMake_SOURCE_DIR}/E_env-stdin.cmake)