diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2010-10-07 16:29:43 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2010-10-07 17:01:32 (GMT) |
commit | fe390a2607afcd8f0985a54990236a3ea16643ab (patch) | |
tree | 006a818bc55b7337177ee806d5ce161a79a84125 /Tests/ArgumentExpansion | |
parent | 8dbb2090a2fac15f61710afef9887e224c1c7f72 (diff) | |
download | CMake-fe390a2607afcd8f0985a54990236a3ea16643ab.zip CMake-fe390a2607afcd8f0985a54990236a3ea16643ab.tar.gz CMake-fe390a2607afcd8f0985a54990236a3ea16643ab.tar.bz2 |
Add 'ArgumentExpansion' test
Diffstat (limited to 'Tests/ArgumentExpansion')
-rw-r--r-- | Tests/ArgumentExpansion/CMakeLists.txt | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Tests/ArgumentExpansion/CMakeLists.txt b/Tests/ArgumentExpansion/CMakeLists.txt new file mode 100644 index 0000000..bd78169 --- /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}) |