991f46b0986dbc3c1e499fceee679e0ad71371d2
[platform/upstream/cmake.git] / Tests / RunCMake / cmake_path / RunCMakeTest.cmake
1 include(RunCMake)
2
3 # Validate parsing arguments
4
5 ## input path is not a variable
6 set (RunCMake-stderr-file "wrong-path-stderr.txt")
7
8 ### GET sub-command
9 foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION
10                              STEM RELATIVE_PART PARENT_PATH)
11   run_cmake_command (GET-${subcommand}-wrong-path "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=GET wrong_path ${subcommand} output" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
12 endforeach()
13
14 foreach (command IN ITEMS APPEND_STRING REMOVE_FILENAME REPLACE_FILENAME
15                           REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH
16                           RELATIVE_PATH ABSOLUTE_PATH)
17   run_cmake_command (${command}-wrong-path "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} wrong_path" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
18 endforeach()
19
20 foreach (command IN ITEMS NATIVE_PATH
21                           HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH
22                           HAS_FILENAME HAS_EXTENSION HAS_STEM
23                           HAS_RELATIVE_PART HAS_PARENT_PATH
24                           IS_ABSOLUTE IS_RELATIVE IS_PREFIX HASH)
25   if (command STREQUAL "IS_PREFIX")
26     set (extra_args path2)
27   else()
28     unset (extra_args)
29   endif()
30   run_cmake_command (${command}-wrong-path "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} wrong_path ${extra_args} output" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
31 endforeach()
32
33
34 ## missing output parameter
35 set (RunCMake-stderr-file "missing-output-stderr.txt")
36
37 ### GET sub-command
38 foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION
39                              STEM RELATIVE_PART PARENT_PATH)
40   run_cmake_command (GET-${subcommand}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=GET path ${subcommand}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
41 endforeach()
42
43 ### CONVERT sub-command
44 foreach (subcommand IN ITEMS TO_CMAKE_PATH_LIST TO_NATIVE_PATH_LIST)
45   run_cmake_command (CONVERT-${subcommand}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=CONVERT path ${subcommand}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
46 endforeach()
47
48 ### COMPARE sub-command
49 foreach (subcommand IN ITEMS EQUAL NOT_EQUAL)
50   run_cmake_command (COMPARE-${subcommand}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=COMPARE path ${subcommand} path2" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
51 endforeach()
52
53 foreach (command IN ITEMS SET NATIVE_PATH
54                           HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH
55                           HAS_FILENAME HAS_EXTENSION HAS_STEM
56                           HAS_RELATIVE_PART HAS_PARENT_PATH
57                           IS_ABSOLUTE IS_RELATIVE IS_PREFIX HASH)
58   if (command STREQUAL "IS_PREFIX")
59     set (extra_args path2)
60   else()
61     unset (extra_args)
62   endif()
63   run_cmake_command (${command}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
64 endforeach()
65
66
67 ## OUTPUT_VARIABLE without argument
68 set (RunCMake-stderr-file "OUTPUT_VARIABLE-no-arg-stderr.txt")
69
70 foreach (command IN ITEMS APPEND APPEND_STRING REMOVE_FILENAME REPLACE_FILENAME
71                           REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH
72                           RELATIVE_PATH ABSOLUTE_PATH)
73   run_cmake_command (${command}-OUTPUT_VARIABLE-no-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path OUTPUT_VARIABLE" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
74 endforeach()
75
76
77 ## Invalid output variable
78 set (RunCMake-stderr-file "invalid-output-var-stderr.txt")
79
80 ### GET sub-command
81 foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION
82                              STEM RELATIVE_PART PARENT_PATH)
83   run_cmake_command (GET-${subcommand}-invalid-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=GET path ${subcommand}"  -DCHECK_INVALID_OUTPUT=ON -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
84 endforeach()
85
86 ### CONVERT sub-command
87 foreach (subcommand IN ITEMS TO_CMAKE_PATH_LIST TO_NATIVE_PATH_LIST)
88   run_cmake_command (CONVERT-${subcommand}-invalid-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=CONVERT path ${subcommand}" -DCHECK_INVALID_OUTPUT=ON -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
89 endforeach()
90
91 ### COMPARE sub-command
92 foreach (subcommand IN ITEMS EQUAL NOT_EQUAL)
93   run_cmake_command (COMPARE-${subcommand}-invalid-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=COMPARE path ${subcommand} path2" -DCHECK_INVALID_OUTPUT=ON -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
94 endforeach()
95
96 foreach (command IN ITEMS NATIVE_PATH
97                           HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH
98                           HAS_FILENAME HAS_EXTENSION HAS_STEM
99                           HAS_RELATIVE_PART HAS_PARENT_PATH
100                           IS_ABSOLUTE IS_RELATIVE IS_PREFIX HASH)
101   if (command STREQUAL "IS_PREFIX")
102     set (extra_args path2)
103   else()
104     unset (extra_args)
105   endif()
106   run_cmake_command (${command}-invalid-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args}" -DCHECK_INVALID_OUTPUT=ON -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
107 endforeach()
108
109 foreach (command IN ITEMS APPEND APPEND_STRING REMOVE_FILENAME REPLACE_FILENAME
110                           REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH
111                           RELATIVE_PATH ABSOLUTE_PATH)
112   run_cmake_command (${command}-OUTPUT_VARIABLE-invalid-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path OUTPUT_VARIABLE" -DCHECK_INVALID_OUTPUT=ON -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
113 endforeach()
114
115
116 ## Unexpected arguments
117 set (RunCMake-stderr-file "unexpected-arg-stderr.txt")
118
119 ### GET sub-command
120 foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION
121                              STEM RELATIVE_PART PARENT_PATH)
122   if (subcommand STREQUAL "EXTENSION" OR subcommand STREQUAL "STEM")
123     set (extra_args LAST_ONLY)
124   else()
125     unset (extra_args)
126   endif()
127   run_cmake_command (GET-${subcommand}-unexpected-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=GET path ${subcommand} ${extra_args} unexpected output" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
128 endforeach()
129
130 ### CONVERT sub-command
131 foreach (subcommand IN ITEMS TO_CMAKE_PATH_LIST TO_NATIVE_PATH_LIST)
132   run_cmake_command (CONVERT-${subcommand}-unexpected-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=CONVERT path ${subcommand} output unexpected" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
133 endforeach()
134
135 foreach (command IN ITEMS REMOVE_FILENAME REPLACE_FILENAME
136                           REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH
137                           RELATIVE_PATH ABSOLUTE_PATH)
138   if (command STREQUAL "REPLACE_FILENAME" OR command STREQUAL "REPLACE_EXTENSION")
139     set (extra_args input)
140   else()
141     unset (extra_args)
142   endif()
143   run_cmake_command (${command}-unexpected-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args} unexpected" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
144 endforeach()
145
146 foreach (command IN ITEMS SET NATIVE_PATH
147                           HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH
148                           HAS_FILENAME HAS_EXTENSION HAS_STEM
149                           HAS_RELATIVE_PART HAS_PARENT_PATH
150                           IS_ABSOLUTE IS_RELATIVE IS_PREFIX
151                           HASH)
152   if (command STREQUAL "IS_PREFIX")
153     set (extra_args input)
154   else()
155     unset (extra_args)
156   endif()
157   run_cmake_command (${command}-unexpected-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args} unexpected output" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
158 endforeach()
159 unset (RunCMake-stderr-file)
160
161 run_cmake(GET-wrong-operator)
162 run_cmake(CONVERT-wrong-operator)
163 run_cmake(COMPARE-wrong-operator)
164
165 set (RunCMake_TEST_OPTIONS "-DRunCMake_SOURCE_DIR=${RunCMake_SOURCE_DIR}")
166
167 run_cmake(GET)
168 run_cmake(SET)
169 run_cmake(APPEND)
170 run_cmake(APPEND_STRING)
171 run_cmake(REMOVE_FILENAME)
172 run_cmake(REPLACE_FILENAME)
173 run_cmake(REMOVE_EXTENSION)
174 run_cmake(REPLACE_EXTENSION)
175 run_cmake(NORMAL_PATH)
176 run_cmake(RELATIVE_PATH)
177 run_cmake(ABSOLUTE_PATH)
178 run_cmake(NATIVE_PATH)
179 run_cmake(CONVERT)
180 run_cmake(COMPARE)
181 run_cmake(HAS_ITEM)
182 run_cmake(IS_ABSOLUTE)
183 run_cmake(IS_RELATIVE)
184 run_cmake(IS_PREFIX)
185 run_cmake(HASH)