@@ -75,6 +75,29 @@ define test test-command-line-parser ()
75
75
empty? (parser.positional-arguments));
76
76
end test test-command-line-parser;
77
77
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
+
78
101
define test test-<parameter-option> ()
79
102
local
80
103
method parse (argv)
0 commit comments