diff options
author | Alex Turbov <i.zaufi@gmail.com> | 2021-07-27 19:47:06 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-08-03 14:55:47 (GMT) |
commit | 866b0595f6f3e26542148984e22f508fb1b3eb1e (patch) | |
tree | b20322d97975991d4be792a0edfc1bf29b343b4d /Tests/RunCMake/if | |
parent | 51d9194a96df4cb8cd144afce4edc6e2122fab2d (diff) | |
download | CMake-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')
-rw-r--r-- | Tests/RunCMake/if/IncompleteMatches-stdout.txt | 6 | ||||
-rw-r--r-- | Tests/RunCMake/if/IncompleteMatches.cmake | 36 | ||||
-rw-r--r-- | Tests/RunCMake/if/IncompleteMatchesFail-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/if/IncompleteMatchesFail-stderr.txt | 6 | ||||
-rw-r--r-- | Tests/RunCMake/if/IncompleteMatchesFail.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/if/RunCMakeTest.cmake | 2 |
6 files changed, 53 insertions, 0 deletions
diff --git a/Tests/RunCMake/if/IncompleteMatches-stdout.txt b/Tests/RunCMake/if/IncompleteMatches-stdout.txt new file mode 100644 index 0000000..634d988 --- /dev/null +++ b/Tests/RunCMake/if/IncompleteMatches-stdout.txt @@ -0,0 +1,6 @@ +-- Test #1 passed +-- Test #2 passed +-- Test #3 passed +-- Test #4 passed +-- Test #5 passed +-- Test #6 passed 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() diff --git a/Tests/RunCMake/if/IncompleteMatchesFail-result.txt b/Tests/RunCMake/if/IncompleteMatchesFail-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/IncompleteMatchesFail-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/IncompleteMatchesFail-stderr.txt b/Tests/RunCMake/if/IncompleteMatchesFail-stderr.txt new file mode 100644 index 0000000..6e8ac80 --- /dev/null +++ b/Tests/RunCMake/if/IncompleteMatchesFail-stderr.txt @@ -0,0 +1,6 @@ +CMake Error at IncompleteMatchesFail\.cmake:1 \(if\): + if given arguments: + + "LHS" "MATCHES" + + Unknown arguments specified diff --git a/Tests/RunCMake/if/IncompleteMatchesFail.cmake b/Tests/RunCMake/if/IncompleteMatchesFail.cmake new file mode 100644 index 0000000..a3ef2b8 --- /dev/null +++ b/Tests/RunCMake/if/IncompleteMatchesFail.cmake @@ -0,0 +1,2 @@ +if(LHS MATCHES) +endif() diff --git a/Tests/RunCMake/if/RunCMakeTest.cmake b/Tests/RunCMake/if/RunCMakeTest.cmake index f54edf7..239c167 100644 --- a/Tests/RunCMake/if/RunCMakeTest.cmake +++ b/Tests/RunCMake/if/RunCMakeTest.cmake @@ -10,6 +10,8 @@ run_cmake(elseif-message) run_cmake(misplaced-elseif) run_cmake(MatchesSelf) +run_cmake(IncompleteMatches) +run_cmake(IncompleteMatchesFail) run_cmake(TestNameThatExists) run_cmake(TestNameThatDoesNotExist) |