summaryrefslogtreecommitdiff
path: root/test-skeleton.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-08-04 07:26:46 -0400
committerMike Frysinger <vapier@gentoo.org>2015-08-05 04:40:00 -0400
commit496405af79252a2eb7a5ebdc3e29ba452869d047 (patch)
tree6c1911ac735e1d3d77acf8b0713a1a00bd960f31 /test-skeleton.c
parent182d6096fe76b3d63b1151090cd07e60eca39302 (diff)
test-skeleton: add usage information
I keep trying to run tests with --help and then remembering that does nothing when it throws an error. That means I have to dig into the source when I want to refer to flags or env vars and re-read a good amount of code to find the nested locations. Make this all much more user friendly with a usage screen that gets printed out whenever an unknown option is specified.
Diffstat (limited to 'test-skeleton.c')
-rw-r--r--test-skeleton.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/test-skeleton.c b/test-skeleton.c
index 9ee5001440..1b2688c3bf 100644
--- a/test-skeleton.c
+++ b/test-skeleton.c
@@ -250,6 +250,41 @@ set_fortify_handler (void (*handler) (int sig))
ignore_stderr ();
}
+/* Show people how to run the program. */
+static void
+usage (void)
+{
+ size_t i;
+
+ printf ("Usage: %s [options]\n"
+ "\n"
+ "Environment Variables:\n"
+ " TIMEOUTFACTOR An integer used to scale the timeout\n"
+ " TMPDIR Where to place temporary files\n"
+ "\n",
+ program_invocation_short_name);
+ printf ("Options:\n");
+ for (i = 0; options[i].name; ++i)
+ {
+ int indent;
+
+ indent = printf (" --%s", options[i].name);
+ if (options[i].has_arg == required_argument)
+ indent += printf (" <arg>");
+ printf ("%*s", 25 - indent, "");
+ switch (options[i].val)
+ {
+ case OPT_DIRECT:
+ printf ("Run the test directly (instead of forking & monitoring)");
+ break;
+ case OPT_TESTDIR:
+ printf ("Override the TMPDIR env var");
+ break;
+ }
+ printf ("\n");
+ }
+}
+
/* We provide the entry point here. */
int
main (int argc, char *argv[])
@@ -271,6 +306,7 @@ main (int argc, char *argv[])
switch (opt)
{
case '?':
+ usage ();
exit (1);
case OPT_DIRECT:
direct = 1;