cmake_parse_arguments: Additional regression tests

Add regression tests for the arguments handling in
cmake_parse_arguments. The tests were run also against cmake 3.4.1
maint branch to verify that there are no regressions.

Signed-off-by: Dimitar Yordanov <dimitar.yordanov@sap.com>
Signed-off-by: Matthias Maennich <matthias.maennich@sap.com>
This commit is contained in:
Dimitar Yordanov 2016-02-21 19:38:16 +01:00 committed by Brad King
parent 2039bf40e4
commit 430251245e
2 changed files with 30 additions and 1 deletions

View File

@ -29,6 +29,26 @@ macro(foo)
endmacro() endmacro()
foo(FOO foo) foo(FOO foo)
TEST(_FOO1_FOO foo) TEST(_FOO1_FOO foo)
TEST(_FOO2_FOO foo) TEST(_FOO2_FOO foo)
# Make sure a list is split
foo(FOO "foo;bar")
TEST(_FOO1_FOO foo)
TEST(_FOO1_UNPARSED_ARGUMENTS "bar")
TEST(_FOO2_FOO foo)
TEST(_FOO2_UNPARSED_ARGUMENTS "bar")
# Do not split if argn is quoted
foo(FOO "foo\\;bar")
TEST(_FOO1_FOO foo)
TEST(_FOO1_UNPARSED_ARGUMENTS "bar")
TEST(_FOO2_FOO foo;bar)
TEST(_FOO2_UNPARSED_ARGUMENTS "UNDEFINED")
# Do not split if argn is quoted
foo(FOO "foo\\\\;bar")
TEST(_FOO1_FOO foo)
TEST(_FOO1_UNPARSED_ARGUMENTS "bar")
TEST(_FOO2_FOO foo;bar)
TEST(_FOO2_UNPARSED_ARGUMENTS "UNDEFINED")

View File

@ -25,6 +25,9 @@ TEST(pref_OPT1 TRUE)
cmake_parse_arguments(pref "OPT1;OPT2" "" "" OPT1 OPT2) cmake_parse_arguments(pref "OPT1;OPT2" "" "" OPT1 OPT2)
TEST(pref_OPT1 TRUE) TEST(pref_OPT1 TRUE)
TEST(pref_OPT2 TRUE) TEST(pref_OPT2 TRUE)
cmake_parse_arguments(pref "OPT1;OPT2" "" "" "OPT1;OPT2")
TEST(pref_OPT1 TRUE)
TEST(pref_OPT2 TRUE)
cmake_parse_arguments(pref "OPT1;OPT2" "" "") cmake_parse_arguments(pref "OPT1;OPT2" "" "")
TEST(pref_OPT1 FALSE) TEST(pref_OPT1 FALSE)
TEST(pref_OPT2 FALSE) TEST(pref_OPT2 FALSE)
@ -44,6 +47,9 @@ TEST(pref_SINGLE1 foo)
cmake_parse_arguments(pref "" "SINGLE1;SINGLE2" "" SINGLE1 foo SINGLE2 bar) cmake_parse_arguments(pref "" "SINGLE1;SINGLE2" "" SINGLE1 foo SINGLE2 bar)
TEST(pref_SINGLE1 foo) TEST(pref_SINGLE1 foo)
TEST(pref_SINGLE2 bar) TEST(pref_SINGLE2 bar)
cmake_parse_arguments(pref "" "SINGLE1;SINGLE2" "" "SINGLE1;foo;SINGLE2;bar")
TEST(pref_SINGLE1 foo)
TEST(pref_SINGLE2 bar)
cmake_parse_arguments(pref "" "SINGLE1;SINGLE2" "") cmake_parse_arguments(pref "" "SINGLE1;SINGLE2" "")
TEST(pref_SINGLE1 UNDEFINED) TEST(pref_SINGLE1 UNDEFINED)
TEST(pref_SINGLE2 UNDEFINED) TEST(pref_SINGLE2 UNDEFINED)
@ -63,6 +69,9 @@ TEST(pref_MULTI1 foo)
cmake_parse_arguments(pref "" "" "MULTI1;MULTI2" MULTI1 foo bar MULTI2 bar foo) cmake_parse_arguments(pref "" "" "MULTI1;MULTI2" MULTI1 foo bar MULTI2 bar foo)
TEST(pref_MULTI1 foo bar) TEST(pref_MULTI1 foo bar)
TEST(pref_MULTI2 bar foo) TEST(pref_MULTI2 bar foo)
cmake_parse_arguments(pref "" "" "MULTI1;MULTI2" "MULTI1;foo;bar;MULTI2;bar;foo")
TEST(pref_MULTI1 foo bar)
TEST(pref_MULTI2 bar foo)
cmake_parse_arguments(pref "" "" "MULTI1;MULTI2") cmake_parse_arguments(pref "" "" "MULTI1;MULTI2")
TEST(pref_MULTI1 UNDEFINED) TEST(pref_MULTI1 UNDEFINED)
TEST(pref_MULTI2 UNDEFINED) TEST(pref_MULTI2 UNDEFINED)