MCPcopy Create free account
hub / github.com/ElementsProject/lightning / main

Function main

ccan/ccan/opt/test/run.c:9–288  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7#include "utils.h"
8
9int main(int argc, char *argv[])
10{
11 const char *myname = argv[0];
12
13 plan_tests(215);
14
15 /* Simple short arg.*/
16 opt_register_noarg("-a", test_noarg, NULL, "All");
17 ok1(parse_args(&argc, &argv, "-a", NULL));
18 ok1(argc == 1);
19 ok1(argv[0] == myname);
20 ok1(argv[1] == NULL);
21 ok1(test_cb_called == 1);
22
23 /* Simple long arg. */
24 opt_register_noarg("--aaa", test_noarg, NULL, "AAAAll");
25 ok1(parse_args(&argc, &argv, "--aaa", NULL));
26 ok1(argc == 1);
27 ok1(argv[0] == myname);
28 ok1(argv[1] == NULL);
29 ok1(test_cb_called == 2);
30
31 /* Both long and short args. */
32 opt_register_noarg("--aaa|-a", test_noarg, NULL, "AAAAAAll");
33 ok1(parse_args(&argc, &argv, "--aaa", "-a", NULL));
34 ok1(argc == 1);
35 ok1(argv[0] == myname);
36 ok1(argv[1] == NULL);
37 ok1(test_cb_called == 4);
38
39 /* Extra arguments preserved. */
40 ok1(parse_args(&argc, &argv, "--aaa", "-a", "extra", "args", NULL));
41 ok1(argc == 3);
42 ok1(argv[0] == myname);
43 ok1(strcmp(argv[1], "extra") == 0);
44 ok1(strcmp(argv[2], "args") == 0);
45 ok1(test_cb_called == 6);
46
47 /* Malformed versions. */
48 ok1(!parse_args(&argc, &argv, "--aaa=arg", NULL));
49 ok1(strstr(err_output, ": --aaa: doesn't allow an argument"));
50 ok1(!parse_args(&argc, &argv, "--aa", NULL));
51 ok1(strstr(err_output, ": --aa: unrecognized option"));
52 ok1(!parse_args(&argc, &argv, "--aaargh", NULL));
53 ok1(strstr(err_output, ": --aaargh: unrecognized option"));
54
55 /* Argument variants. */
56 reset_options();
57 test_cb_called = 0;
58 opt_register_arg("-a|--aaa", test_arg, NULL, "aaa", "AAAAAAll");
59 ok1(parse_args(&argc, &argv, "--aaa", "aaa", NULL));
60 ok1(argc == 1);
61 ok1(argv[0] == myname);
62 ok1(test_cb_called == 1);
63
64 ok1(parse_args(&argc, &argv, "--aaa=aaa", NULL));
65 ok1(argc == 1);
66 ok1(argv[0] == myname);

Callers

nothing calls this directly

Calls 3

parse_argsFunction · 0.85
reset_optionsFunction · 0.85
opt_register_tableFunction · 0.85

Tested by

no test coverage detected