summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-06-03 13:44:51 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-06-03 13:44:58 (GMT)
commitbf58164cac96c74000c46c1ca7d7d31a06137c16 (patch)
tree3b0f15377a7d2e823e9b8dc1a85c3e8b04a6ebed /Tests
parent3715c154c84c9d55aa071ceac926520a9677a047 (diff)
parent4d1883df1142fbe5c23cb7f433f619c1a7322984 (diff)
downloadCMake-bf58164cac96c74000c46c1ca7d7d31a06137c16.zip
CMake-bf58164cac96c74000c46c1ca7d7d31a06137c16.tar.gz
CMake-bf58164cac96c74000c46c1ca7d7d31a06137c16.tar.bz2
Merge topic 'genex-PATH_EQUAL'
4d1883df11 Genex-PATH_EQUAL: path comparison Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7309
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/CMakeLists.txt5
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/PATH_EQUAL.cmake.in8
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/RunCMakeTest.cmake14
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-result.txt1
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-stderr.txt42
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments.cmake7
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/check_errors.cmake12
-rw-r--r--Tests/RunCMake/GenEx-PATH_EQUAL/generate.cmake2
9 files changed, 92 insertions, 0 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index a94cf21..3ca01ec 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -331,6 +331,7 @@ add_RunCMake_test(GenEx-TARGET_FILE -DLINKER_SUPPORTS_PDB=${LINKER_SUPPORTS_PDB}
add_RunCMake_test(GenEx-GENEX_EVAL)
add_RunCMake_test(GenEx-TARGET_RUNTIME_DLLS)
add_RunCMake_test(GenEx-PATH)
+add_RunCMake_test(GenEx-PATH_EQUAL)
add_RunCMake_test(GeneratorExpression)
add_RunCMake_test(GeneratorInstance)
add_RunCMake_test(GeneratorPlatform)
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/CMakeLists.txt b/Tests/RunCMake/GenEx-PATH_EQUAL/CMakeLists.txt
new file mode 100644
index 0000000..f9748e9
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 3.18...3.24)
+
+project(${RunCMake_TEST} NONE)
+
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/PATH_EQUAL.cmake.in b/Tests/RunCMake/GenEx-PATH_EQUAL/PATH_EQUAL.cmake.in
new file mode 100644
index 0000000..e8a1e95
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/PATH_EQUAL.cmake.in
@@ -0,0 +1,8 @@
+
+include ("${RunCMake_SOURCE_DIR}/check_errors.cmake")
+
+expect_true("$<PATH_EQUAL:a///b/c,a/b/c>" "a///b/c" "a/b/c")
+
+expect_false("$<PATH_EQUAL:a/b/d/../c,a/b/c>" "a/b/d/../c" "a/b/c")
+
+expect_true("$<PATH_EQUAL:$<PATH:NORMAL_PATH,a/b/d/../c>,a/b/c>" "a/b/d/../c" "a/b/c")
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/RunCMakeTest.cmake b/Tests/RunCMake/GenEx-PATH_EQUAL/RunCMakeTest.cmake
new file mode 100644
index 0000000..802c503
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/RunCMakeTest.cmake
@@ -0,0 +1,14 @@
+
+include(RunCMake)
+
+run_cmake(WrongArguments)
+
+function(check_path_execution name)
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
+ set(RunCMake_TEST_NO_CLEAN 1)
+ set(RunCMake_TEST_VARIANT_DESCRIPTION " - ${name}")
+ run_cmake_with_options(generate -DPATH_TEST=${name})
+ run_cmake_command(check "${CMAKE_COMMAND}" "-DRunCMake_SOURCE_DIR=${RunCMake_SOURCE_DIR}" -P "${RunCMake_TEST_BINARY_DIR}/${name}.cmake")
+endfunction()
+
+check_path_execution (PATH_EQUAL)
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-result.txt b/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-stderr.txt b/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-stderr.txt
new file mode 100644
index 0000000..4cbc7ba
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments-stderr.txt
@@ -0,0 +1,42 @@
+CMake Error at WrongArguments.cmake:[0-9]+ \(add_custom_target\):
+ Error evaluating generator expression:
+
+ \$<PATH_EQUAL>
+
+ \$<PATH_EQUAL> expression requires 2 comma separated parameters, but got 0
+ instead.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:[0-9]+ \(include\)
+
+
+CMake Error at WrongArguments.cmake:[0-9]+ \(add_custom_target\):
+ Error evaluating generator expression:
+
+ \$<PATH_EQUAL:>
+
+ \$<PATH_EQUAL> expression requires 2 comma separated parameters, but got 1
+ instead.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:[0-9]+ \(include\)
+
+
+CMake Error at WrongArguments.cmake:2 \(add_custom_target\):
+ Error evaluating generator expression:
+
+ \$<PATH_EQUAL:,,>
+
+ \$<PATH_EQUAL> expression requires 2 comma separated parameters, but got 3
+ instead.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:[0-9]+ \(include\)
+
+
+CMake Error at WrongArguments.cmake:[0-9]+ \(add_custom_target\):
+ Error evaluating generator expression:
+
+ \$<PATH_EQUAL:something,,>
+
+ \$<PATH_EQUAL> expression requires 2 comma separated parameters, but got 3
+ instead.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments.cmake b/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments.cmake
new file mode 100644
index 0000000..1288a0e
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/WrongArguments.cmake
@@ -0,0 +1,7 @@
+
+add_custom_target(check ALL COMMAND check
+ $<PATH_EQUAL>
+ $<PATH_EQUAL:>
+ $<PATH_EQUAL:,,>
+ $<PATH_EQUAL:something,,>
+ VERBATIM)
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/check_errors.cmake b/Tests/RunCMake/GenEx-PATH_EQUAL/check_errors.cmake
new file mode 100644
index 0000000..fd99eb4
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/check_errors.cmake
@@ -0,0 +1,12 @@
+
+function(EXPECT_TRUE output data reference)
+ if (NOT output)
+ message(SEND_ERROR "'${data}' not equal to '${reference}'")
+ endif()
+endfunction()
+
+function(EXPECT_FALSE output data reference)
+ if (output)
+ message(SEND_ERROR "'${data}' equal to '${reference}'")
+ endif()
+endfunction()
diff --git a/Tests/RunCMake/GenEx-PATH_EQUAL/generate.cmake b/Tests/RunCMake/GenEx-PATH_EQUAL/generate.cmake
new file mode 100644
index 0000000..4bd5f3b
--- /dev/null
+++ b/Tests/RunCMake/GenEx-PATH_EQUAL/generate.cmake
@@ -0,0 +1,2 @@
+
+file(GENERATE OUTPUT "${PATH_TEST}.cmake" INPUT "${PATH_TEST}.cmake.in")