summaryrefslogtreecommitdiff
path: root/Tests/RunCMake/CMakePresetsBuild/TestVariable.cmake
blob: 3113dcc7c3af7c2df0ec96093ca1482978a6a292 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function(test_environment_variable name expected_value)
  string(REGEX MATCH "${name}=([^\n]*)" REGEX_RESULT "${actual_stdout}")
  if(NOT REGEX_RESULT)
    string(APPEND RunCMake_TEST_FAILED "Environment variable '${name}' is not defined.\n")
  else()
    set(actual_value "${CMAKE_MATCH_1}")
    if(NOT "${actual_value}" MATCHES "${expected_value}")
      string(REPLACE "\n" "\n  " _actual "${expected_value}")
      string(REPLACE "\n" "\n  " _expect "${actual_value}")
      string(APPEND RunCMake_TEST_FAILED "Expected value of environment variable '${name}':\n  ${_expect}\nActual value:\n  ${_actual}\n")
    endif()
  endif()
  set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
endfunction()