diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-08-04 07:26:46 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-08-05 04:40:00 -0400 |
commit | 496405af79252a2eb7a5ebdc3e29ba452869d047 (patch) | |
tree | 6c1911ac735e1d3d77acf8b0713a1a00bd960f31 | |
parent | 182d6096fe76b3d63b1151090cd07e60eca39302 (diff) | |
download | glibc-496405af79252a2eb7a5ebdc3e29ba452869d047.tar.gz glibc-496405af79252a2eb7a5ebdc3e29ba452869d047.tar.xz glibc-496405af79252a2eb7a5ebdc3e29ba452869d047.zip |
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.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | test-skeleton.c | 36 |
2 files changed, 41 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index a05d2625b5..b072b80e9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2015-08-05 Mike Frysinger <vapier@gentoo.org> + * test-skeleton.c (usage): New function. + (main): Call usage when opt is '?'. + +2015-08-05 Mike Frysinger <vapier@gentoo.org> + * sysdeps/unix/sysv/linux/mmap64.c: Move MMAP2_PAGE_SHIFT define before first use. 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; |