diff options
Diffstat (limited to 'vcpkg/scripts/test_ports/unit-test-cmake/test-z_vcpkg_function_arguments.cmake')
| -rw-r--r-- | vcpkg/scripts/test_ports/unit-test-cmake/test-z_vcpkg_function_arguments.cmake | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vcpkg/scripts/test_ports/unit-test-cmake/test-z_vcpkg_function_arguments.cmake b/vcpkg/scripts/test_ports/unit-test-cmake/test-z_vcpkg_function_arguments.cmake new file mode 100644 index 0000000..e88eb68 --- /dev/null +++ b/vcpkg/scripts/test_ports/unit-test-cmake/test-z_vcpkg_function_arguments.cmake @@ -0,0 +1,63 @@ +# these both set `args` in the top level
+function(check_function_args start)
+ z_vcpkg_function_arguments(out "${start}")
+ set(args "${out}" PARENT_SCOPE)
+endfunction()
+function(check_all_function_args)
+ z_vcpkg_function_arguments(out)
+ set(args "${out}" PARENT_SCOPE)
+endfunction()
+
+unit_test_ensure_fatal_error([[check_function_args(-1)]])
+unit_test_ensure_fatal_error([[check_function_args(3)]])
+unit_test_ensure_fatal_error([[check_function_args(notanumber)]])
+unit_test_check_variable_equal(
+ [[check_all_function_args()]]
+ args ""
+)
+unit_test_check_variable_equal(
+ [[check_all_function_args("")]]
+ args ""
+)
+unit_test_check_variable_equal(
+ [[check_all_function_args("" "")]]
+ args ";"
+)
+unit_test_check_variable_equal(
+ [[check_all_function_args("" "" "" "")]]
+ args ";;;"
+)
+
+unit_test_check_variable_equal(
+ [[check_all_function_args(a b c)]]
+ args "a;b;c"
+)
+unit_test_check_variable_equal(
+ [[check_function_args(2 a b c)]]
+ args "b;c"
+)
+unit_test_check_variable_equal(
+ [[check_function_args(3 a b c)]]
+ args "c"
+)
+
+unit_test_check_variable_equal(
+ [=[check_all_function_args("a;b" [[c\;d]] e)]=]
+ args [[a\;b;c\\;d;e]]
+)
+unit_test_check_variable_equal(
+ [=[check_all_function_args("a;b" [[c\;d]] [[e\\;f]])]=]
+ args [[a\;b;c\\;d;e\\\;f]]
+)
+unit_test_check_variable_equal(
+ [=[check_function_args(2 "a;b" [[c\;d]] e)]=]
+ args [[c\\;d;e]]
+)
+unit_test_check_variable_equal(
+ [=[check_function_args(3 "a;b" [[c\;d]] e)]=]
+ args "e"
+)
+unit_test_check_variable_equal(
+ [=[check_function_args(4 "a;b" [[c\;d]] e)]=]
+ args ""
+)
|