Browse Source

ccan: add test for line-wrapping usage message.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell 12 years ago
parent
commit
2e26b06e63
1 changed files with 12 additions and 1 deletions
  1. 12 1
      ccan/opt/test/run-usage.c

+ 12 - 1
ccan/opt/test/run-usage.c

@@ -30,7 +30,7 @@ int main(int argc, char *argv[])
 	char *longname = strdup("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
 	char *shortname = strdup("shortname");
 
-	plan_tests(48);
+	plan_tests(50);
 	opt_register_table(subtables, NULL);
 	opt_register_noarg("--kkk|-k", my_cb, NULL, "magic kkk option");
 	opt_register_noarg("-?", opt_usage_and_exit, "<MyArgs>...",
@@ -108,6 +108,17 @@ 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.");
+	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 shown\n"
+		   "        in the usage message.\n"));
+	free(output);
+
 	free(shortname);
 	free(longname);
 	return exit_status();