]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-test: Introduce test_fatal_func_t as typedef and comment how it works.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 12 Dec 2016 13:16:34 +0000 (15:16 +0200)
committerGitLab <gitlab@git.dovecot.net>
Wed, 14 Dec 2016 15:31:30 +0000 (17:31 +0200)
src/lib-test/test-common.c
src/lib-test/test-common.h

index 95f5be3a252778c7b0e29b4e88a9542d0ce87902..c298ec5c03d49245a100afe7ca8fca3e7464530a 100644 (file)
@@ -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);
index 308e09de31ea069d58b30816bae843b2c3d357df..001ef64c6ff32651117fd86222c49341aa91094b 100644 (file)
@@ -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[]);