diff options
author | katherine <ageha@airen-no-jikken.icu> | 2019-06-15 18:51:10 -0700 |
---|---|---|
committer | katherine <ageha@airen-no-jikken.icu> | 2019-06-15 18:51:10 -0700 |
commit | 8b1b6b7f1b8ab79e5fd3d4d16e7de7ec681130b7 (patch) | |
tree | f70f7a1b6e49a23b3699ad617dee2436d9134e92 /simple-test.h | |
parent | cae280b3246a51cd485cb01c8ec73a205ceac7e8 (diff) | |
download | simple-test-master.tar.gz |
simpler and more flexible
Diffstat (limited to 'simple-test.h')
-rw-r--r-- | simple-test.h | 21 |
1 files changed, 6 insertions, 15 deletions
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 <stdarg.h> #include <string.h> + /************************** * 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"); \ |