X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Ftest%2Frun-usage.c;h=cea678f3806ded21d7636bf3f3380ebe67e3ca02;hp=7d94ced219b59868883801cb26bd7f362019e4f7;hb=HEAD;hpb=3d45cf27cf586c9afe078ceb06fee115ea246a92 diff --git a/ccan/opt/test/run-usage.c b/ccan/opt/test/run-usage.c index 7d94ced2..cea678f3 100644 --- a/ccan/opt/test/run-usage.c +++ b/ccan/opt/test/run-usage.c @@ -6,7 +6,7 @@ #include "utils.h" /* Ensure width is sane. */ -static const char *getenv_override(const char *name) +static const char *getenv_override(const char *name UNNEEDED) { return "100"; } @@ -18,19 +18,19 @@ static const char *getenv_override(const char *name) #include #include -static char *my_cb(void *p) +static char *my_cb(void *p UNNEEDED) { return NULL; } /* Test helpers. */ -int main(int argc, char *argv[]) +int main(void) { char *output; char *longname = strdup("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); char *shortname = strdup("shortname"); - plan_tests(48); + plan_tests(51); opt_register_table(subtables, NULL); opt_register_noarg("--kkk|-k", my_cb, NULL, "magic kkk option"); opt_register_noarg("-?", opt_usage_and_exit, "...", @@ -108,6 +108,23 @@ int main(int argc, char *argv[]) ok1(strstr(output, "AAAAll")); free(output); + reset_options(); + /* Valgrind nails this to 100 anyway :( */ + setenv("COLUMNS", "100", 1); + opt_register_noarg("--long", my_cb, NULL, "Extremely long option which requires more than one line for its full description to be shown in the usage message."); + opt_register_noarg("--split", my_cb, NULL, "New line in\nlong option which requires more than one line for its full description to be shown in the usage message."); + output = opt_usage("longarg", NULL); + diag("%s", output); + ok1(strstr(output, "Usage: longarg \n")); + ok1(strstr(output, "\n" + "--long Extremely long option which requires more than one line for its full description to be\n" + " shown in the usage message.\n")); + ok1(strstr(output, "\n" + "--split New line in\n" + " long option which requires more than one line for its full description to be shown in the\n" + " usage message.\n")); + free(output); + free(shortname); free(longname); return exit_status();