summaryrefslogtreecommitdiffstats
path: root/Tests/Environment/CMakeLists.txt
blob: abcf33c53b3155c54647954ddf5ca7cc6de2aaa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
cmake_minimum_required(VERSION 2.6)
project(EnvironmentProj)

add_executable(Environment main.cxx)

enable_testing()

add_test(Environment1 Environment)
add_test(Environment2 Environment)
add_test(EchoEnvironment1 ${CMAKE_COMMAND} -E environment)
add_test(EchoEnvironment2 ${CMAKE_COMMAND} -E environment)
add_test(EchoEnvironment3 ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_SOURCE_DIR}/check_mod.cmake")

# Make sure "CMAKE_ENV.*Happy Thanksgiving" is in the output of
# the "1" tests:
#
set_tests_properties(Environment1 EchoEnvironment1 PROPERTIES
  ENVIRONMENT "CMAKE_ENVIRONMENT_TEST_VAR=Happy Thanksgiving!"
  PASS_REGULAR_EXPRESSION "CMAKE_ENV.*Happy Thanksgiving"
)

# Make sure "CMAKE_ENV.*Happy Thanksgiving" is *NOT* in the output of
# the "2" tests:
#
set_tests_properties(Environment2 EchoEnvironment2 PROPERTIES
  FAIL_REGULAR_EXPRESSION "CMAKE_ENV.*Happy Thanksgiving"
)

set_property(TEST EchoEnvironment3
  PROPERTY ENVIRONMENT
    "SET_FROM_ENVIRONMENT_PROPERTY_unset=base"
    "SET_FROM_ENVIRONMENT_PROPERTY_replace=base"
    "SET_FROM_ENVIRONMENT_PROPERTY_string=base"
    "SET_FROM_ENVIRONMENT_PROPERTY_path=base"
    "SET_FROM_ENVIRONMENT_PROPERTY_list=base"
)

set_property(TEST EchoEnvironment3
  PROPERTY ENVIRONMENT_MODIFICATION
    # Modifying variables set in the ambient environment (see properties for
    # this test in `Tests/CMakeLists.txt`).
    "SET_FROM_AMBIENT_unset=unset:"
    "SET_FROM_AMBIENT_replace=set:new"
    "SET_FROM_AMBIENT_string=string_append:new"
    "SET_FROM_AMBIENT_path=path_list_append:new"
    "SET_FROM_AMBIENT_list=cmake_list_append:new"

    # Modifying variables set in the `ENVIRONMENT` property.
    "SET_FROM_ENVIRONMENT_PROPERTY_unset=unset:"
    "SET_FROM_ENVIRONMENT_PROPERTY_replace=set:new"
    "SET_FROM_ENVIRONMENT_PROPERTY_string=string_append:new"
    "SET_FROM_ENVIRONMENT_PROPERTY_path=path_list_append:new"
    "SET_FROM_ENVIRONMENT_PROPERTY_list=cmake_list_append:new"

    # Variables expected to be unset.
    "UNSET_EXPLICIT=set:value"
    "UNSET_EXPLICIT=unset:"
    "UNSET_VIA_RESET=set:value"
    "UNSET_VIA_RESET=reset:"

    # Direct settings.
    "DIRECT=set:old"
    "DIRECT=set:new"

    # String manipulation.
    "STRING_MANIP=set:-core-"
    "STRING_MANIP=string_append:post-"
    "STRING_MANIP=string_prepend:-pre"
    "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"
    "PATH_MANIP=path_list_prepend:pre"
    "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"
)