X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fopt%2Ftest%2Frun-usage.c;h=9d448dc460b7cf6db90ff398ac0558138bfc51c1;hb=7e381e6c241957ff5840b1d8a0ab5f3bde6337c2;hp=85b23b8181c15accdba14c9a8ab6779ccb46a6ca;hpb=d7d5abe98caeec82d784ce525e0444ff438acd46;p=ccan-lca-2011.git diff --git a/ccan/opt/test/run-usage.c b/ccan/opt/test/run-usage.c index 85b23b8..9d448dc 100644 --- a/ccan/opt/test/run-usage.c +++ b/ccan/opt/test/run-usage.c @@ -7,6 +7,7 @@ #include "utils.h" #include #include +#include static char *my_cb(void *p) { @@ -17,30 +18,59 @@ static char *my_cb(void *p) int main(int argc, char *argv[]) { char *output; - plan_tests(18); + + plan_tests(38); opt_register_table(subtables, NULL); - opt_register_noarg("--kkk", 'k', my_cb, NULL, "magic kkk option"); + opt_register_noarg("--kkk|-k", my_cb, NULL, "magic kkk option"); + opt_register_noarg("-?", opt_usage_and_exit, "...", + "This message"); output = opt_usage("my name", "ExTrA Args"); diag("%s", output); ok1(strstr(output, "Usage: my name")); - ok1(strstr(output, "--jjj/-j ")); + ok1(strstr(output, "--jjj|-j|--lll|-l ")); ok1(strstr(output, "ExTrA Args")); ok1(strstr(output, "-a ")); ok1(strstr(output, " Description of a\n")); ok1(strstr(output, "-b ")); - ok1(strstr(output, " Description of b\n")); + ok1(strstr(output, " Description of b (default: b)\n")); + ok1(strstr(output, "--ddd ")); + ok1(strstr(output, " Description of ddd\n")); + ok1(strstr(output, "--eee ")); + ok1(strstr(output, " (default: eee)\n")); + ok1(strstr(output, "long table options:\n")); + ok1(strstr(output, "--ggg|-g ")); + ok1(strstr(output, " Description of ggg\n")); + ok1(strstr(output, "-h|--hhh ")); + ok1(strstr(output, " Description of hhh\n")); + ok1(strstr(output, "--kkk|-k")); + ok1(strstr(output, "magic kkk option")); + /* This entry is hidden. */ + ok1(!strstr(output, "--mmm|-m")); + free(output); + + /* NULL should use string from registered options. */ + output = opt_usage("my name", NULL); + diag("%s", output); + ok1(strstr(output, "Usage: my name")); + ok1(strstr(output, "--jjj|-j|--lll|-l ")); + ok1(strstr(output, "...")); + ok1(strstr(output, "-a ")); + ok1(strstr(output, " Description of a\n")); + ok1(strstr(output, "-b ")); + ok1(strstr(output, " Description of b (default: b)\n")); ok1(strstr(output, "--ddd ")); ok1(strstr(output, " Description of ddd\n")); - ok1(strstr(output, "--eee ")); - ok1(strstr(output, " Description of eee\n")); + ok1(strstr(output, "--eee ")); + ok1(strstr(output, " (default: eee)\n")); ok1(strstr(output, "long table options:\n")); - /* This table is hidden. */ - ok1(!strstr(output, "--ggg/-g ")); - ok1(!strstr(output, " Description of ggg\n")); - ok1(!strstr(output, "--hhh/-h ")); - ok1(!strstr(output, " Description of hhh\n")); - ok1(strstr(output, "--kkk/-k")); + ok1(strstr(output, "--ggg|-g ")); + ok1(strstr(output, " Description of ggg\n")); + ok1(strstr(output, "-h|--hhh ")); + ok1(strstr(output, " Description of hhh\n")); + ok1(strstr(output, "--kkk|-k")); ok1(strstr(output, "magic kkk option")); + /* This entry is hidden. */ + ok1(!strstr(output, "--mmm|-m")); free(output); return exit_status();