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

Function main

ccan/ccan/opt/test/run-set_alloc.c:66–363  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66int main(int argc, char *argv[])
67{
68 const char *myname = argv[0];
69 unsigned int val;
70
71 plan_tests(222);
72
73 opt_set_alloc(allocfn, reallocfn, freefn);
74
75 /* Simple short arg.*/
76 opt_register_noarg("-a", test_noarg, NULL, "All");
77 ok1(parse_args(&argc, &argv, "-a", NULL));
78 ok1(argc == 1);
79 ok1(argv[0] == myname);
80 ok1(argv[1] == NULL);
81 ok1(test_cb_called == 1);
82
83 /* Simple long arg. */
84 opt_register_noarg("--aaa", test_noarg, NULL, "AAAAll");
85 ok1(parse_args(&argc, &argv, "--aaa", NULL));
86 ok1(argc == 1);
87 ok1(argv[0] == myname);
88 ok1(argv[1] == NULL);
89 ok1(test_cb_called == 2);
90
91 /* Both long and short args. */
92 opt_register_noarg("--aaa|-a", test_noarg, NULL, "AAAAAAll");
93 ok1(parse_args(&argc, &argv, "--aaa", "-a", NULL));
94 ok1(argc == 1);
95 ok1(argv[0] == myname);
96 ok1(argv[1] == NULL);
97 ok1(test_cb_called == 4);
98
99 /* Extra arguments preserved. */
100 ok1(parse_args(&argc, &argv, "--aaa", "-a", "extra", "args", NULL));
101 ok1(argc == 3);
102 ok1(argv[0] == myname);
103 ok1(strcmp(argv[1], "extra") == 0);
104 ok1(strcmp(argv[2], "args") == 0);
105 ok1(test_cb_called == 6);
106
107 /* Malformed versions. */
108 ok1(!parse_args(&argc, &argv, "--aaa=arg", NULL));
109 ok1(strstr(err_output, ": --aaa: doesn't allow an argument"));
110 ok1(!parse_args(&argc, &argv, "--aa", NULL));
111 ok1(strstr(err_output, ": --aa: unrecognized option"));
112 ok1(!parse_args(&argc, &argv, "--aaargh", NULL));
113 ok1(strstr(err_output, ": --aaargh: unrecognized option"));
114
115 /* Argument variants. */
116 reset_options();
117 test_cb_called = 0;
118 opt_register_arg("-a|--aaa", test_arg, NULL, "aaa", "AAAAAAll");
119 ok1(parse_args(&argc, &argv, "--aaa", "aaa", NULL));
120 ok1(argc == 1);
121 ok1(argv[0] == myname);
122 ok1(test_cb_called == 1);
123

Callers

nothing calls this directly

Calls 4

opt_set_allocFunction · 0.85
parse_argsFunction · 0.85
reset_optionsFunction · 0.85
opt_register_tableFunction · 0.85

Tested by

no test coverage detected