@@ -10,31 +10,57 @@ define_test_case(
1010# Helpers
1111# -------------------------------------------------------------------------------------------------------------- #
1212
13- function (fn_with_required_args )
13+ function (fn_with_named_args )
1414 set (options "" ) # N/A
1515 set (oneValueArgs NAME DESCRIPTION)
1616 set (multiValueArgs "" ) # N/A
1717
1818 cmake_parse_arguments (INPUT "${options} " "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
19- requires_arguments(INPUT "NAME;DESCRIPTION" )
19+ requires_arguments("NAME;DESCRIPTION" INPUT )
20+ endfunction ()
21+
22+ function (fn_with_args name )
23+ if (${ARGC} EQUAL 2)
24+ set (description "${ARGV1} " )
25+ endif ()
26+
27+ # This may seem a bit strange to declare "description" as required
28+ # here, however, this is fully intended (for the test...)
29+ requires_arguments("name;description" "" )
2030endfunction ()
2131
2232# -------------------------------------------------------------------------------------------------------------- #
2333# Actual Tests
2434# -------------------------------------------------------------------------------------------------------------- #
2535
36+ define_test("ensures required named args are defined" "ensures_required_named_args_defined" )
37+ function (ensures_required_named_args_defined)
38+
39+ # If invoking method does not cause a fatal error, test passes.
40+ fn_with_named_args(NAME "foo" DESCRIPTION "bar" )
41+
42+ endfunction ()
43+
2644define_test("ensures required args are defined" "ensures_required_args_defined" )
2745function (ensures_required_args_defined)
2846
2947 # If invoking method does not cause a fatal error, test passes.
30- fn_with_required_args(NAME "foo" DESCRIPTION "bar" )
48+ fn_with_args("foo" "bar" )
49+
50+ endfunction ()
51+
52+ define_test("fails when required named args are not defined" "fails_when_required_named_arg_not_defined" EXPECT_FAILURE)
53+ function (fails_when_required_named_arg_not_defined)
54+
55+ # This should cause a failure because DESCRIPTION is required
56+ fn_with_named_args(NAME "foo" )
3157
3258endfunction ()
3359
3460define_test("fails when required args are not defined" "fails_when_required_arg_not_defined" EXPECT_FAILURE)
3561function (fails_when_required_arg_not_defined)
3662
37- # This should cause a failure because DESCRIPTION is required
38- fn_with_required_args( NAME "foo" )
63+ # This should cause a failure because second argument is required
64+ fn_with_args( "foo" )
3965
4066endfunction ()
0 commit comments