Skip to content

Commit ee2faa2

Browse files
committed
Add test-<flag-option>
1 parent 0443b48 commit ee2faa2

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

tests/command-line-parser-test-suite.dylan

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,29 @@ define test test-command-line-parser ()
7575
empty?(parser.positional-arguments));
7676
end test test-command-line-parser;
7777

78+
define test test-<flag-option> ()
79+
local
80+
method parse (default, argv)
81+
let p = make(<command-line-parser>);
82+
add-option(p, make(<flag-option>,
83+
names: #("verbose", "v"),
84+
negative-names: #("quiet", "q"),
85+
default: default));
86+
parse-command-line(p, argv);
87+
p
88+
end;
89+
assert-false(option-value(make(<flag-option>)), "boolean flag defaults to false?");
90+
for (item in list(list(#f, #["--verbose"], #t),
91+
list(#t, #["--verbose"], #t),
92+
list(#f, #["-v"], #t),
93+
list(#f, #["--quiet"], #f),
94+
list(#t, #["--quiet"], #f),
95+
list(#f, #["-q"], #f)))
96+
let (default, argv, want) = apply(values, item);
97+
assert-equal(want, get-option-value(parse(default, argv), "verbose"), item);
98+
end;
99+
end test;
100+
78101
define test test-<parameter-option> ()
79102
local
80103
method parse (argv)

0 commit comments

Comments
 (0)