summaryrefslogtreecommitdiff
path: root/Tests/ArgumentExpansion
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2010-10-07 12:29:43 -0400
committerBen Boeckel <ben.boeckel@kitware.com>2010-10-07 13:01:32 -0400
commitfe390a2607afcd8f0985a54990236a3ea16643ab (patch)
tree006a818bc55b7337177ee806d5ce161a79a84125 /Tests/ArgumentExpansion
parent8dbb2090a2fac15f61710afef9887e224c1c7f72 (diff)
downloadcmake-fe390a2607afcd8f0985a54990236a3ea16643ab.tar.gz
Add 'ArgumentExpansion' test
Diffstat (limited to 'Tests/ArgumentExpansion')
-rw-r--r--Tests/ArgumentExpansion/CMakeLists.txt59
1 files changed, 59 insertions, 0 deletions
diff --git a/Tests/ArgumentExpansion/CMakeLists.txt b/Tests/ArgumentExpansion/CMakeLists.txt
new file mode 100644
index 0000000000..bd781691b7
--- /dev/null
+++ b/Tests/ArgumentExpansion/CMakeLists.txt
@@ -0,0 +1,59 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(ArgumentExpansion)
+
+function (argument_tester expected expected_len)
+ list(LENGTH ARGN argn_len)
+ list(LENGTH ${expected} expected_received_len)
+
+ if (NOT ${expected_received_len} EQUAL ${expected_len})
+ message(STATUS "Error: Expanding expected values isn't working")
+ endif (NOT ${expected_received_len} EQUAL ${expected_len})
+
+ if (${argn_len} EQUAL ${expected_len})
+ set(i 0)
+ while (i LESS ${argn_len})
+ list(GET ARGN ${i} argn_value)
+ list(GET ${expected} ${i} expected_value)
+
+ if (NOT ${argn_value} STREQUAL ${expected_value})
+ message(STATUS "Error: Argument ${i} doesn't match")
+ message(STATUS " Expected: ${expected_value}")
+ message(STATUS " Received: ${argn_value}")
+ endif (NOT ${argn_value} STREQUAL ${expected_value})
+
+ math(EXPR i "${i} + 1")
+ endwhile (i LESS ${argn_len})
+ else (${argn_len} EQUAL ${expected_len})
+ message(STATUS "Error: Lengths of arguments don't match")
+ message(STATUS " Expected: ${expected_len}")
+ message(STATUS " Received: ${argn_len}")
+ endif (${argn_len} EQUAL ${expected_len})
+endfunction (argument_tester expected)
+
+set(empty_test)
+message(STATUS "Test: Empty arguments")
+argument_tester(empty_test 0 ${empty_test})
+
+set(single_arg_test
+ "single arg")
+message(STATUS "Test: Single argument")
+argument_tester(single_arg_test 1 ${single_arg_test})
+
+set(multiple_arg_test
+ "first arg"
+ "second arg")
+message(STATUS "Test: Multiple arguments")
+argument_tester(multiple_arg_test 2 ${multiple_arg_test})
+
+set(nested_list_arg_test
+ "${multiple_arg_test}"
+ "first arg"
+ "second arg")
+message(STATUS "Test: Nested list argument")
+argument_tester(nested_list_arg_test 3 ${nested_list_arg_test})
+
+set(semicolon_arg_test
+ "pre\;post")
+message(STATUS "Test: Semicolon argument")
+argument_tester(semicolon_arg_test 1 ${semicolon_arg_test})