summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorAdriaan de Groot <groot@kde.org>2021-12-21 14:55:34 (GMT)
committerBrad King <brad.king@kitware.com>2021-12-21 15:55:50 (GMT)
commitb573a732dc654f82bd70aeb53666fcf61f26ca16 (patch)
tree058c45f1fbdc1f49cfd6579dc0abe15d4b4e69a9 /Tests
parentb151db01f9ea4ce8a0fb0b8528f2278a4bfb5fc3 (diff)
downloadCMake-b573a732dc654f82bd70aeb53666fcf61f26ca16.zip
CMake-b573a732dc654f82bd70aeb53666fcf61f26ca16.tar.gz
CMake-b573a732dc654f82bd70aeb53666fcf61f26ca16.tar.bz2
Tests: add tests to check claims in the documentation
- list commands APPEND, PREPEND, INSERT treat non-existent lists as empty and use that value, creating a new list variable in the process.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/list/LIST-nonexistent.cmake45
-rw-r--r--Tests/RunCMake/list/RunCMakeTest.cmake3
2 files changed, 48 insertions, 0 deletions
diff --git a/Tests/RunCMake/list/LIST-nonexistent.cmake b/Tests/RunCMake/list/LIST-nonexistent.cmake
new file mode 100644
index 0000000..ee88548
--- /dev/null
+++ b/Tests/RunCMake/list/LIST-nonexistent.cmake
@@ -0,0 +1,45 @@
+# Various list operations should treat non-existent variables as empty
+# - APPEND
+# - PREPEND
+# - INSERT (only valid index is 0)
+set(nex_l0 "")
+list(APPEND nex_l0 a)
+list(APPEND nex_l0 b)
+if(NOT nex_l0 STREQUAL "a;b")
+ message(FATAL_ERROR "a;b expected, got ${nex_l0}")
+endif()
+
+unset(nex_l1)
+list(APPEND nex_l1 c)
+list(APPEND nex_l1 d)
+if(NOT nex_l1 STREQUAL "c;d")
+ message(FATAL_ERROR "c;d expected, got ${nex_l1}")
+endif()
+
+set(nex_l2 "")
+list(PREPEND nex_l2 E)
+list(PREPEND nex_l2 f)
+if(NOT nex_l2 STREQUAL "f;E")
+ message(FATAL_ERROR "f;E expected, got ${nex_l2}")
+endif()
+
+unset(nex_l3)
+list(PREPEND nex_l3 hi)
+list(PREPEND nex_l3 G)
+if(NOT nex_l3 STREQUAL "G;hi")
+ message(FATAL_ERROR "G;hi expected, got ${nex_l3}")
+endif()
+
+set(nex_l4 "")
+list(INSERT nex_l4 0 j)
+list(INSERT nex_l4 0 kl)
+if(NOT nex_l4 STREQUAL "kl;j")
+ message(FATAL_ERROR "kl;j expected, got ${nex_l4}")
+endif()
+
+unset(nex_l5)
+list(INSERT nex_l5 0 M)
+list(INSERT nex_l5 0 noP)
+if(NOT nex_l5 STREQUAL "noP;M")
+ message(FATAL_ERROR "noP;M expected, got ${nex_l5}")
+endif()
diff --git a/Tests/RunCMake/list/RunCMakeTest.cmake b/Tests/RunCMake/list/RunCMakeTest.cmake
index eb43ee0..adfe255 100644
--- a/Tests/RunCMake/list/RunCMakeTest.cmake
+++ b/Tests/RunCMake/list/RunCMakeTest.cmake
@@ -116,3 +116,6 @@ run_cmake(POP_FRONT-NoArgs)
# Successful tests
run_cmake(POP_BACK)
run_cmake(POP_FRONT)
+
+# Nonexistent variables treated as empty
+run_cmake(LIST-nonexistent)