diff options
Diffstat (limited to 'Tests/RunCMake/cmake_path/RunCMakeTest.cmake')
-rw-r--r-- | Tests/RunCMake/cmake_path/RunCMakeTest.cmake | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/Tests/RunCMake/cmake_path/RunCMakeTest.cmake b/Tests/RunCMake/cmake_path/RunCMakeTest.cmake new file mode 100644 index 0000000..ca9cba6 --- /dev/null +++ b/Tests/RunCMake/cmake_path/RunCMakeTest.cmake @@ -0,0 +1,191 @@ +include(RunCMake) + +# Validate parsing arguments + +## input path is not a variable +set (RunCMake-stderr-file "wrong-path-stderr.txt") + +### GET sub-command +foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION + STEM RELATIVE_PATH PARENT_PATH) + 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") +endforeach() + +### COMPARE sub-command +foreach (subcommand IN ITEMS EQUAL NOT_EQUAL) + run_cmake_command (COMPARE-${subcommand}-wrong-path "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=COMPARE wrong_path ${subcommand} path2 output" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + +foreach (command IN ITEMS CONCAT REMOVE_FILENAME REPLACE_FILENAME + REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH + RELATIVE_PATH PROXIMATE_PATH ABSOLUTE_PATH) + run_cmake_command (${command}-wrong-path "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} wrong_path" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + +foreach (command IN ITEMS NATIVE_PATH + HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH + HAS_FILENAME HAS_EXTENSION HAS_STEM + HAS_RELATIVE_PATH HAS_PARENT_PATH + IS_ABSOLUTE IS_RELATIVE IS_PREFIX HASH) + if (command STREQUAL "IS_PREFIX") + set (extra_args path2) + else() + unset (extra_args) + endif() + 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") +endforeach() + + +## missing output parameter +set (RunCMake-stderr-file "missing-output-stderr.txt") + +### GET sub-command +foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION + STEM RELATIVE_PATH PARENT_PATH) + run_cmake_command (GET-${subcommand}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=GET path ${subcommand}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + +### CONVERT sub-command +foreach (subcommand IN ITEMS TO_CMAKE_PATH_LIST TO_NATIVE_PATH_LIST) + run_cmake_command (CONVERT-${subcommand}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=CONVERT path ${subcommand}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + +### COMPARE sub-command +foreach (subcommand IN ITEMS EQUAL NOT_EQUAL) + run_cmake_command (COMPARE-${subcommand}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=COMPARE path ${subcommand} path2" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + +foreach (command IN ITEMS CMAKE_PATH NATIVE_PATH + HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH + HAS_FILENAME HAS_EXTENSION HAS_STEM + HAS_RELATIVE_PATH HAS_PARENT_PATH + IS_ABSOLUTE IS_RELATIVE IS_PREFIX HASH) + if (command STREQUAL "IS_PREFIX") + set (extra_args path2) + else() + unset (extra_args) + endif() + run_cmake_command (${command}-missing-output "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args}" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + + +## OUTPUT_VARIABLE without argument +set (RunCMake-stderr-file "OUTPUT_VARIABLE-no-arg-stderr.txt") + +foreach (command IN ITEMS APPEND CONCAT REMOVE_FILENAME REPLACE_FILENAME + REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH + RELATIVE_PATH PROXIMATE_PATH ABSOLUTE_PATH) + 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") +endforeach() + + +## Invalid output variable +set (RunCMake-stderr-file "invalid-output-var-stderr.txt") + +### GET sub-command +foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION + STEM RELATIVE_PATH PARENT_PATH) + 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") +endforeach() + +### CONVERT sub-command +foreach (subcommand IN ITEMS TO_CMAKE_PATH_LIST TO_NATIVE_PATH_LIST) + 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") +endforeach() + +### COMPARE sub-command +foreach (subcommand IN ITEMS EQUAL NOT_EQUAL) + 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") +endforeach() + +foreach (command IN ITEMS CMAKE_PATH NATIVE_PATH + HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH + HAS_FILENAME HAS_EXTENSION HAS_STEM + HAS_RELATIVE_PATH HAS_PARENT_PATH + IS_ABSOLUTE IS_RELATIVE IS_PREFIX HASH) + if (command STREQUAL "IS_PREFIX") + set (extra_args path2) + else() + unset (extra_args) + endif() + 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") +endforeach() + +foreach (command IN ITEMS APPEND CONCAT REMOVE_FILENAME REPLACE_FILENAME + REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH + RELATIVE_PATH PROXIMATE_PATH ABSOLUTE_PATH) + 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") +endforeach() + + +## Unexpected arguments +set (RunCMake-stderr-file "unexpected-arg-stderr.txt") + +### GET sub-command +foreach (subcommand IN ITEMS ROOT_NAME ROOT_DIRECTORY ROOT_PATH FILENAME EXTENSION + STEM RELATIVE_PATH PARENT_PATH) + if (subcommand STREQUAL "EXTENSION" OR subcommand STREQUAL "STEM") + set (extra_args LAST_ONLY) + else() + unset (extra_args) + endif() + 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") +endforeach() + +### CONVERT sub-command +foreach (subcommand IN ITEMS TO_CMAKE_PATH_LIST TO_NATIVE_PATH_LIST) + 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") +endforeach() + +foreach (command IN ITEMS REMOVE_FILENAME REPLACE_FILENAME + REMOVE_EXTENSION REPLACE_EXTENSION NORMAL_PATH + RELATIVE_PATH PROXIMATE_PATH ABSOLUTE_PATH) + if (command STREQUAL "REPLACE_FILENAME" OR command STREQUAL "REPLACE_EXTENSION") + set (extra_args input) + else() + unset (extra_args) + endif() + run_cmake_command (${command}-unexpected-arg "${CMAKE_COMMAND}" "-DCMAKE_PATH_ARGUMENTS=${command} path ${extra_args} unexpected" -P "${RunCMake_SOURCE_DIR}/call-cmake_path.cmake") +endforeach() + +foreach (command IN ITEMS CMAKE_PATH NATIVE_PATH + HAS_ROOT_NAME HAS_ROOT_DIRECTORY HAS_ROOT_PATH + HAS_FILENAME HAS_EXTENSION HAS_STEM + HAS_RELATIVE_PATH HAS_PARENT_PATH + IS_ABSOLUTE IS_RELATIVE IS_PREFIX + HASH) + if (command STREQUAL "IS_PREFIX") + set (extra_args input) + else() + unset (extra_args) + endif() + 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") +endforeach() +unset (RunCMake-stderr-file) + +run_cmake(GET-wrong-operator) +run_cmake(CONVERT-wrong-operator) +run_cmake(COMPARE-wrong-operator) + +set (RunCMake_TEST_OPTIONS "-DRunCMake_SOURCE_DIR=${RunCMake_SOURCE_DIR}") + +run_cmake(GET) +run_cmake(APPEND) +run_cmake(CONCAT) +run_cmake(REMOVE_FILENAME) +run_cmake(REPLACE_FILENAME) +run_cmake(REMOVE_EXTENSION) +run_cmake(REPLACE_EXTENSION) +run_cmake(NORMAL_PATH) +run_cmake(RELATIVE_PATH) +run_cmake(PROXIMATE_PATH) +run_cmake(ABSOLUTE_PATH) +run_cmake(CMAKE_PATH) +run_cmake(NATIVE_PATH) +run_cmake(CONVERT) +run_cmake(COMPARE) +run_cmake(HAS_ITEM) +run_cmake(IS_ABSOLUTE) +run_cmake(IS_RELATIVE) +run_cmake(IS_PREFIX) +run_cmake(HASH) |