From 8b1b6b7f1b8ab79e5fd3d4d16e7de7ec681130b7 Mon Sep 17 00:00:00 2001 From: katherine Date: Sat, 15 Jun 2019 18:51:10 -0700 Subject: replace USE/REGISTER_TEARDOWN with TEARDOWN simpler and more flexible --- simple-test.h | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) (limited to 'simple-test.h') diff --git a/simple-test.h b/simple-test.h index c6abebf..34cb4d7 100644 --- a/simple-test.h +++ b/simple-test.h @@ -9,6 +9,7 @@ #include #include + /************************** * CONFIGURATION MACROS * **************************/ @@ -394,10 +395,8 @@ static enum simple_test_type simple_test_type_resolve(enum simple_test_type t1, * BASIC MACROS * ******************/ -#define REGISTER_TEARDOWN(f) \ +#define TEARDOWN(f) \ do { \ - if (simple_test_teardown != NULL) \ - SIMPLE_TEST_ERR("teardown function already defined"); \ simple_test_teardown = _Generic((f), \ void(*)(void): (f), default: NULL); \ if (simple_test_teardown == NULL) { \ @@ -406,13 +405,6 @@ static enum simple_test_type simple_test_type_resolve(enum simple_test_type t1, } \ } while (0) -#define USE_TEARDOWN \ - do { \ - if (simple_test_teardown == NULL) \ - SIMPLE_TEST_ERR("teardown function undefined"); \ - simple_test_do_teardown = true; \ - } while (0) - /* must appear before all tests */ #define BEGIN_TEST \ int main(int argc, char **argv) \ @@ -425,7 +417,6 @@ static enum simple_test_type simple_test_type_resolve(enum simple_test_type t1, int simple_test_test_current = 1; \ int simple_test_test_current_at; \ int simple_test_pass_number = 0; \ - bool simple_test_do_teardown = false; \ void (*simple_test_teardown)(void) = NULL; \ do { \ simple_test_test_current_at = 0; \ @@ -447,9 +438,9 @@ static enum simple_test_type simple_test_type_resolve(enum simple_test_type t1, #define TEST(description) \ } \ - if (simple_test_do_teardown) { \ - simple_test_do_teardown = false; \ + if (simple_test_teardown != NULL) { \ simple_test_teardown(); \ + simple_test_teardown = NULL; \ } \ simple_test_test_current_at++; \ if (simple_test_pass_number == 0) { \ @@ -471,9 +462,9 @@ static enum simple_test_type simple_test_type_resolve(enum simple_test_type t1, /* must appear after all tests */ #define END_TEST \ } \ - if (simple_test_do_teardown) { \ - simple_test_do_teardown = false; \ + if (simple_test_teardown != NULL) { \ simple_test_teardown(); \ + simple_test_teardown = NULL; \ } \ if (simple_test_test_count == 0) { \ SIMPLE_TEST_ERR("no tests defined"); \ -- cgit v1.2.3