1 #include <ccan/tap/tap.h>
3 #include <ccan/opt/opt.c>
4 #include <ccan/opt/usage.c>
5 #include <ccan/opt/helpers.c>
6 #include <ccan/opt/parse.c>
9 int main(int argc, char *argv[])
11 const char *myname = argv[0];
15 opt_register_noarg("--aaa|-a", test_noarg, NULL, "AAAAAAll");
16 opt_register_arg("-b", test_arg, NULL, "bbb", "b");
18 /* We can't unregister wrong ones, but can unregister correct one */
19 ok1(!opt_unregister("--aaa"));
20 ok1(!opt_unregister("-a"));
21 ok1(opt_unregister("--aaa|-a"));
23 /* Arg parsing works as if we'd never registered it */
24 ok1(parse_args(&argc, &argv, "-bbbb", NULL));
26 ok1(argv[0] == myname);
28 ok1(test_cb_called == 1);
30 ok1(!parse_args(&argc, &argv, "--aaa", NULL));
32 /* We can still add another one OK. */
33 opt_register_noarg("-c", test_noarg, NULL, "AAAAAAll");
34 ok1(parse_args(&argc, &argv, "-c", NULL));
36 ok1(argv[0] == myname);
38 ok1(test_cb_called == 2);
40 /* parse_args allocates argv */