From 0a793ebc6059f4354c62ccec62ef7c950988ca4a Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Fri, 8 Feb 2019 11:19:04 +0100 Subject: Test: Fixed annoying warnings (and possible obscure bugs). --- test/birdtest.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'test/birdtest.c') diff --git a/test/birdtest.c b/test/birdtest.c index a4312e9b..347f79b9 100644 --- a/test/birdtest.c +++ b/test/birdtest.c @@ -155,10 +155,7 @@ int bt_run_test_fn(int (*fn)(const void *), const void *fn_arg, int timeout) int result; alarm(timeout); - if (fn_arg) - result = fn(fn_arg); - else - result = ((int (*)(void))fn)(); + result = fn(fn_arg); if (!bt_suite_result) result = 0; -- cgit v1.2.3 From d348a916f57cb0ac390718295624dd9a1cf2d32a Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Mon, 18 Feb 2019 14:56:49 +0100 Subject: Test: Added -d flag to die directly after first error. --- test/birdtest.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'test/birdtest.c') diff --git a/test/birdtest.c b/test/birdtest.c index 347f79b9..b5ee48c7 100644 --- a/test/birdtest.c +++ b/test/birdtest.c @@ -31,6 +31,7 @@ static const char *request; static int list_tests; static int do_core; +static int do_die; static int no_fork; static int no_timeout; static int is_terminal; /* Whether stdout is a live terminal or pipe redirect */ @@ -67,7 +68,7 @@ bt_init(int argc, char *argv[]) bt_test_id = NULL; is_terminal = isatty(fileno(stdout)); - while ((c = getopt(argc, argv, "lcftv")) >= 0) + while ((c = getopt(argc, argv, "lcdftv")) >= 0) switch (c) { case 'l': @@ -78,6 +79,10 @@ bt_init(int argc, char *argv[]) do_core = 1; break; + case 'd': + do_die = 1; + break; + case 'f': no_fork = 1; break; @@ -111,10 +116,11 @@ bt_init(int argc, char *argv[]) return; usage: - printf("Usage: %s [-l] [-c] [-f] [-t] [-vvv] []\n", argv[0]); + printf("Usage: %s [-l] [-c] [-d] [-f] [-t] [-vvv] []\n", argv[0]); printf("Options: \n"); printf(" -l List all test suite names and descriptions \n"); printf(" -c Force unlimit core dumps (needs root privileges) \n"); + printf(" -d Die on first failed test case \n"); printf(" -f No forking \n"); printf(" -t No timeout limit \n"); printf(" -v More verbosity, maximum is 3 -vvv \n"); @@ -223,6 +229,9 @@ bt_log_result(int result, const char *fmt, va_list argptr) result_str = is_terminal ? BT_PROMPT_FAIL : BT_PROMPT_FAIL_NO_COLOR; printf("%s\n", result_str); + + if (do_die && !result) + abort(); } /** -- cgit v1.2.3