diff options
author | Kristian Høgsberg <krh@bitplanet.net> | 2013-02-11 13:58:39 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-02-11 13:58:39 -0500 |
commit | 13d5271b470ba426b4f28e745d704f8675a0ae42 (patch) | |
tree | e8b8fe84c4cfefdb4a416fa44146119264381dcb /tests | |
parent | adcb2d73b3377c749efcae5ae0e5471e10b6646f (diff) |
tests: Add a help message for the test runner
In case we forget the name of the test case or typo it, the test runner
will now list the test cases in the test binary.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-runner.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/test-runner.c b/tests/test-runner.c index 8c79dff..9c6865a 100644 --- a/tests/test-runner.c +++ b/tests/test-runner.c @@ -90,6 +90,24 @@ find_test(const char *name) } static void +usage(const char *name, int status) +{ + const struct test *t; + + fprintf(stderr, "Usage: %s [TEST]\n\n" + "With no arguments, run all test. Specify test case to run\n" + "only that test without forking. Available tests:\n\n", + name); + + for (t = &__start_test_section; t < &__stop_test_section; t++) + fprintf(stderr, " %s\n", t->name); + + fprintf(stderr, "\n"); + + exit(status); +} + +static void run_test(const struct test *t) { int cur_alloc = num_alloc; @@ -119,11 +137,14 @@ int main(int argc, char *argv[]) leak_check_enabled = !getenv("NO_ASSERT_LEAK_CHECK"); + if (argc == 2 && strcmp(argv[1], "--help") == 0) + usage(argv[0], EXIT_SUCCESS); + if (argc == 2) { t = find_test(argv[1]); if (t == NULL) { fprintf(stderr, "unknown test: \"%s\"\n", argv[1]); - exit(EXIT_FAILURE); + usage(argv[0], EXIT_FAILURE); } run_test(t); |