3 # Validate parsing arguments
5 ## input path is not a variable
6 set (RunCMake-stderr-file "wrong-path-stderr.txt")
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")
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")
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)
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")
34 ## missing output parameter
35 set (RunCMake-stderr-file "missing-output-stderr.txt")
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")
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")
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")
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)
63 run_cmake_command (${command}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake")
67 ## OUTPUT_VARIABLE without argument
68 set (RunCMake-stderr-file "OUTPUT_VARIABLE-no-arg-stderr.txt")
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")
77 ## Invalid output variable
78 set (RunCMake-stderr-file "invalid-output-var-stderr.txt")
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")
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")
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")
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)
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")
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")
116 ## Unexpected arguments
117 set (RunCMake-stderr-file "unexpected-arg-stderr.txt")
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)
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")
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")
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)
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")
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
152 if (command STREQUAL "IS_PREFIX")
153 set (extra_args input)
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")
159 unset (RunCMake-stderr-file)
161 run_cmake(GET-wrong-operator)
162 run_cmake(CONVERT-wrong-operator)
163 run_cmake(COMPARE-wrong-operator)
165 set (RunCMake_TEST_OPTIONS "-DRunCMake_SOURCE_DIR=${RunCMake_SOURCE_DIR}")
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)
182 run_cmake(IS_ABSOLUTE)
183 run_cmake(IS_RELATIVE)