From: Timo Sirainen Date: Mon, 12 Dec 2016 13:16:34 +0000 (+0200) Subject: lib-test: Introduce test_fatal_func_t as typedef and comment how it works. X-Git-Tag: 2.3.0.rc1~2436 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=76d4cc8e7aea32e91a48c83dabcccb196ea8019b;p=thirdparty%2Fdovecot%2Fcore.git lib-test: Introduce test_fatal_func_t as typedef and comment how it works. --- diff --git a/src/lib-test/test-common.c b/src/lib-test/test-common.c index 95f5be3a25..c298ec5c03 100644 --- a/src/lib-test/test-common.c +++ b/src/lib-test/test-common.c @@ -248,7 +248,7 @@ static void test_run_named_funcs(struct named_test tests[], const char *match) } } -static void run_one_fatal(enum fatal_test_state (*fatal_function)(int)) +static void run_one_fatal(test_fatal_func_t *fatal_function) { static int index = 0; for (;;) { @@ -279,7 +279,7 @@ static void run_one_fatal(enum fatal_test_state (*fatal_function)(int)) } } } -static void test_run_fatals(enum fatal_test_state (*fatal_functions[])(int index)) +static void test_run_fatals(test_fatal_func_t *fatal_functions[]) { unsigned int i; @@ -313,7 +313,7 @@ int test_run_named(struct named_test tests[], const char *match) return test_deinit(); } int test_run_with_fatals(void (*test_functions[])(void), - enum fatal_test_state (*fatal_functions[])(int)) + test_fatal_func_t *fatal_functions[]) { test_init(); test_run_funcs(test_functions); diff --git a/src/lib-test/test-common.h b/src/lib-test/test-common.h index 308e09de31..001ef64c6f 100644 --- a/src/lib-test/test-common.h +++ b/src/lib-test/test-common.h @@ -68,12 +68,18 @@ enum fatal_test_state { FATAL_TEST_FAILURE, /* single stage has failed, continue */ FATAL_TEST_ABORT, /* something's gone horrifically wrong */ }; +/* The fatal function is called first with stage=0. After each call the stage + is increased by 1. The idea is that each stage would be running an + individual test that is supposed to crash. The function is called until + FATAL_TEST_FINISHED or FATAL_TEST_ABORT is returned. */ +typedef enum fatal_test_state test_fatal_func_t(int stage); + struct named_fatal { const char *name; - enum fatal_test_state (*func)(int); + test_fatal_func_t *func; }; int test_run_with_fatals(void (*test_functions[])(void), - enum fatal_test_state (*fatal_functions[])(int)); + test_fatal_func_t *fatal_functions[]); int test_run_named_with_fatals(const char *match, struct named_test tests[], struct named_fatal fatals[]);