From 496405af79252a2eb7a5ebdc3e29ba452869d047 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 4 Aug 2015 07:26:46 -0400 Subject: 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. --- test-skeleton.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'test-skeleton.c') 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 (" "); + 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; -- cgit 1.4.1