X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Ftest%2Frun-helpers.c;h=589962fe4d8fadaffe6dc4cafd2764b2b5838a22;hp=8cf229cc6acc230fd6e32bd794938f24c967d141;hb=2d6e39ce1994c9537caf9a711b69a2c61f1ec35d;hpb=13f96138f7887a97c76582340536478ad5079814;ds=inline diff --git a/ccan/opt/test/run-helpers.c b/ccan/opt/test/run-helpers.c index 8cf229cc..589962fe 100644 --- a/ccan/opt/test/run-helpers.c +++ b/ccan/opt/test/run-helpers.c @@ -72,6 +72,18 @@ static void *saved_malloc(size_t size) return last_allocation = malloc(size); } +static void set_args(int *argc, char ***argv, ...) +{ + va_list ap; + *argv = malloc(sizeof(**argv) * 20); + + va_start(ap, argv); + for (*argc = 0; + ((*argv)[*argc] = va_arg(ap, char*)) != NULL; + (*argc)++); + va_end(ap); +} + /* Test helpers. */ int main(int argc, char *argv[]) { @@ -985,11 +997,7 @@ int main(int argc, char *argv[]) /* parse_args allocates argv */ free(argv); - argc = 2; - argv = malloc(sizeof(argv[0]) * 3); - argv[0] = (char *)"thisprog"; - argv[1] = (char *)"-a"; - argv[2] = NULL; + set_args(&argc, &argv, "thisprog", "-a", NULL); exitval = setjmp(exited); if (exitval == 0) { @@ -1011,11 +1019,7 @@ int main(int argc, char *argv[]) opt_register_noarg("-a", opt_usage_and_exit, "[args]", ""); - argc = 2; - argv = malloc(sizeof(argv[0]) * 3); - argv[0] = (char *)"thisprog"; - argv[1] = (char *)"-a"; - argv[2] = NULL; + set_args(&argc, &argv, "thisprog", "-a", NULL); exitval = setjmp(exited); if (exitval == 0) { @@ -1150,11 +1154,7 @@ int main(int argc, char *argv[]) opt_register_noarg("-a", opt_usage_and_exit, "[args]", ""); - argc = 2; - argv = malloc(sizeof(argv[0]) * 3); - argv[0] = (char *)"thisprog"; - argv[1] = (char *)"--garbage"; - argv[2] = NULL; + set_args(&argc, &argv, "thisprog", "--garbage", NULL); ok1(!opt_parse(&argc, argv, opt_log_stderr)); ok1(!strcmp(output, "thisprog: --garbage: unrecognized option\n")); @@ -1169,11 +1169,7 @@ int main(int argc, char *argv[]) reset_options(); opt_register_noarg("-a", opt_usage_and_exit, "[args]", ""); - argc = 2; - argv = malloc(sizeof(argv[0]) * 3); - argv[0] = (char *)"thisprog"; - argv[1] = (char *)"--garbage"; - argv[2] = NULL; + set_args(&argc, &argv, "thisprog", "--garbage", NULL); exitval = setjmp(exited); if (exitval == 0) { opt_parse(&argc, argv, opt_log_stderr_exit);