summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/if/IncompleteMatches.cmake
diff options
context:
space:
mode:
authorAlex Turbov <i.zaufi@gmail.com>2021-07-27 19:47:06 (GMT)
committerBrad King <brad.king@kitware.com>2021-08-03 14:55:47 (GMT)
commit866b0595f6f3e26542148984e22f508fb1b3eb1e (patch)
treeb20322d97975991d4be792a0edfc1bf29b343b4d /Tests/RunCMake/if/IncompleteMatches.cmake
parent51d9194a96df4cb8cd144afce4edc6e2122fab2d (diff)
downloadCMake-866b0595f6f3e26542148984e22f508fb1b3eb1e.zip
CMake-866b0595f6f3e26542148984e22f508fb1b3eb1e.tar.gz
CMake-866b0595f6f3e26542148984e22f508fb1b3eb1e.tar.bz2
Refactor: Introduce `cmArgumentList` container class
The `cmArgumentList` has been turned into a class (forward declared in the header). It inherits from the `std::list` (yeah, but we don't intend to store polymorphic classes in it). In addition to the standard methods, now it's possible to move `HandlePredicate` (renamed to `ReduceOneArg`) and `HandleBinaryOp` (renamed to `ReduceTwoArgs`) as its members. Additionally, iterators managements (`IncrementArguments`) have been refactored into two separate classes mimicking iterators. This also allows having a uniform `for` loop and concentrates the logic of iterators advancing in it instead of the loop's body. The arguments processing algorithms operate with "windows" over a collection of arguments. Hence there are two kinds of "iteration windows" -- allowing to observe 2 or 3 elements per loop iteration. These iteration "windows" also passed to reducers.
Diffstat (limited to 'Tests/RunCMake/if/IncompleteMatches.cmake')
-rw-r--r--Tests/RunCMake/if/IncompleteMatches.cmake36
1 files changed, 36 insertions, 0 deletions
diff --git a/Tests/RunCMake/if/IncompleteMatches.cmake b/Tests/RunCMake/if/IncompleteMatches.cmake
new file mode 100644
index 0000000..7142cfc
--- /dev/null
+++ b/Tests/RunCMake/if/IncompleteMatches.cmake
@@ -0,0 +1,36 @@
+if(MATCHES)
+ message(SEND_ERROR "Test #1 failed")
+else()
+ message(STATUS "Test #1 passed")
+endif()
+
+if("" MATCHES "")
+ message(STATUS "Test #2 passed")
+else()
+ message(SEND_ERROR "Test #2 failed")
+endif()
+
+if(MATCHES RHS)
+ message(SEND_ERROR "Test #3 failed")
+else()
+ message(STATUS "Test #3 passed")
+endif()
+
+set(RHS "")
+if(MATCHES RHS)
+ message(SEND_ERROR "Test #4 failed")
+else()
+ message(STATUS "Test #4 passed")
+endif()
+
+if(MATCHES "^$")
+ message(SEND_ERROR "Test #5 failed")
+else()
+ message(STATUS "Test #5 passed")
+endif()
+
+if("" MATCHES "^$")
+ message(STATUS "Test #6 passed")
+else()
+ message(SEND_ERROR "Test #6 failed")
+endif()