Skip to content

Commit c241267

Browse files
committed
Enhance tests for requires_arguments()
1 parent fe70e0b commit c241267

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

tests/unit/helpers/requires_arguments_test.cmake

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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" "")
2030
endfunction()
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+
2644
define_test("ensures required args are defined" "ensures_required_args_defined")
2745
function(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

3258
endfunction()
3359

3460
define_test("fails when required args are not defined" "fails_when_required_arg_not_defined" EXPECT_FAILURE)
3561
function(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

4066
endfunction()

0 commit comments

Comments
 (0)