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 /* Simple short arg.*/
16 opt_register_noarg("--aaa|-a", test_noarg, NULL, "AAAAAAll");
17 opt_register_noarg("-b", test_noarg, NULL, "AAAAAAll");
19 /* We can't unregister wrong ones, but can unregister correct one */
20 ok1(!opt_unregister("--aaa"));
21 ok1(!opt_unregister("-a"));
22 ok1(opt_unregister("--aaa|-a"));
24 /* Arg parsing works as if we'd never registered it */
25 ok1(parse_args(&argc, &argv, "-b", NULL));
27 ok1(argv[0] == myname);
29 ok1(test_cb_called == 1);
31 ok1(!parse_args(&argc, &argv, "--aaa", NULL));
33 /* We can still add another one OK. */
34 opt_register_noarg("-c", test_noarg, NULL, "AAAAAAll");
35 ok1(parse_args(&argc, &argv, "-c", NULL));
37 ok1(argv[0] == myname);
39 ok1(test_cb_called == 2);
41 /* parse_args allocates argv */