CMake/Tests/ArgumentExpansion/CMakeLists.txt
Brad King 729db484ef Fix ArgumentExpansion test expected results
Teach the ArgumentExpansion test to expect flattened lists as has always
been the case in the CMake language.  Now that the test should pass
enable the failure regex even when CMAKE_STRICT is not on.  Replace the
reference to the old ArgumentExpansion test behavior in the workaround
comment in cmMakefile::TryCompile with a full inline explanation.
2011-01-11 17:10:28 -05:00

61 lines
2.0 KiB
CMake

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 "Unexpected: 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 "Unexpected: Argument ${i} doesn't match")
message(STATUS " Expected: ${expected_value}")
message(STATUS " Received: ${argn_value}")
endif ()
math(EXPR i "${i} + 1")
endwhile (i LESS ${argn_len})
else (${argn_len} EQUAL ${expected_len})
message(STATUS "Unexpected: 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 flattens")
argument_tester(nested_list_arg_test 4 ${nested_list_arg_test})
set(semicolon_arg_test
"pre\;post")
set(semicolon_arg_test_flat "pre;post")
message(STATUS "Test: Semicolon argument flattens")
argument_tester(semicolon_arg_test_flat 2 ${semicolon_arg_test})