summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeTests
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/CMakeTests')
-rw-r--r--Tests/CMakeTests/List-Invalid-Subcommand.cmake2
-rw-r--r--Tests/CMakeTests/ListTest.cmake.in30
2 files changed, 20 insertions, 12 deletions
diff --git a/Tests/CMakeTests/List-Invalid-Subcommand.cmake b/Tests/CMakeTests/List-Invalid-Subcommand.cmake
index 40f2345..f35a118 100644
--- a/Tests/CMakeTests/List-Invalid-Subcommand.cmake
+++ b/Tests/CMakeTests/List-Invalid-Subcommand.cmake
@@ -1 +1 @@
-list(NO_SUCH_SUBCOMMAND)
+list(NO_SUCH_SUBCOMMAND mylist)
diff --git a/Tests/CMakeTests/ListTest.cmake.in b/Tests/CMakeTests/ListTest.cmake.in
index b11a295..53559eb 100644
--- a/Tests/CMakeTests/ListTest.cmake.in
+++ b/Tests/CMakeTests/ListTest.cmake.in
@@ -101,26 +101,34 @@ list(SORT result)
TEST("SORT empty result" "")
set(No-Arguments-RESULT 1)
-set(No-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least one argument.*")
-
-set(Get-No-Arguments-STDERR ".*CMake Error at List-Get-No-Arguments.cmake:1 \\(list\\):.*list sub-command GET requires at least three arguments.*")
-set(Append-No-Arguments-STDERR ".*CMake Error at List-Append-No-Arguments.cmake:1 \\(list\\):.*list sub-command APPEND requires at least one argument.*")
-set(Find-No-Arguments-STDERR ".*CMake Error at List-Find-No-Arguments.cmake:1 \\(list\\):.*list sub-command FIND requires three arguments.*")
-set(Insert-No-Arguments-STDERR ".*CMake Error at List-Insert-No-Arguments.cmake:1 \\(list\\):.*list sub-command INSERT requires at least three arguments.*")
-set(Remove_Item-No-Arguments-STDERR ".*CMake Error at List-Remove_Item-No-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_ITEM requires two or more arguments.*")
-set(Reverse-No-Arguments-STDERR ".*CMake Error at List-Reverse-No-Arguments.cmake:1 \\(list\\):.*list sub-command REVERSE requires a list as an argument.*")
-set(Remove_Duplicates-No-Arguments-STDERR ".*CMake Error at List-Remove_Duplicates-No-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_DUPLICATES requires a list as an argument.*")
-set(Sort-No-Arguments-STDERR ".*CMake Error at List-Sort-No-Arguments.cmake:1 \\(list\\):.*list sub-command SORT requires a list as an argument.*")
-set(Remove_At-No-Arguments-STDERR ".*CMake Error at List-Remove_At-No-Arguments.cmake:1 \\(list\\):.*list sub-command REMOVE_AT requires at least two arguments.*")
+set(No-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least two arguments.*")
+# these trigger top-level condition
foreach(cmd IN ITEMS Append Find Get Insert Length Reverse Remove_At Remove_Duplicates Remove_Item Sort)
set(${cmd}-No-Arguments-RESULT 1)
+ set(${cmd}-No-Arguments-STDERR ".*CMake Error at List-${cmd}-No-Arguments.cmake:1 \\(list\\):.*list must be called with at least two arguments.*")
string(TOUPPER ${cmd} cmd_upper)
set(_test_file_name "${CMAKE_CURRENT_BINARY_DIR}/List-${cmd}-No-Arguments.cmake")
file(WRITE "${_test_file_name}" "list(${cmd_upper})\n")
check_cmake_test_single(List "${cmd}-No-Arguments" "${_test_file_name}")
endforeach()
+set(Get-List-Only-STDERR "at least three")
+set(Find-List-Only-STDERR "three")
+set(Insert-List-Only-STDERR "at least three")
+set(Length-List-Only-STDERR "two")
+set(Remove_At-List-Only-STDERR "at least two")
+set(Remove_Item-List-Only-STDERR "two or more")
+
+foreach(cmd IN ITEMS Find Get Insert Length Remove_At Remove_Item)
+ string(TOUPPER ${cmd} cmd_upper)
+ set(${cmd}-List-Only-RESULT 1)
+ set(${cmd}-List-Only-STDERR ".*CMake Error at List-${cmd}-List-Only.cmake:1 \\(list\\):.*list sub-command ${cmd_upper} requires ${${cmd}-List-Only-STDERR} arguments.*")
+ set(_test_file_name "${CMAKE_CURRENT_BINARY_DIR}/List-${cmd}-List-Only.cmake")
+ file(WRITE "${_test_file_name}" "list(${cmd_upper} mylist)\n")
+ check_cmake_test_single(List "${cmd}-List-Only" "${_test_file_name}")
+endforeach()
+
set(Length-Too-Many-Arguments-RESULT 1)
set(Length-Too-Many-Arguments-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?List-Length-Too-Many-Arguments.cmake:1 \\(list\\):.*list sub-command LENGTH requires two arguments.*")