@@ -110,27 +110,28 @@ static inline int run_test_table(void) {
110110 return r ;
111111}
112112
113- static inline int test_nop (void ) {
114- return EXIT_SUCCESS ;
115- }
116-
117- #define DEFINE_CUSTOM_TEST_MAIN (log_level , intro , outro ) \
118- int main(int argc, char *argv[]) { \
119- int _r, _q; \
120- test_setup_logging(log_level); \
121- save_argc_argv(argc, argv); \
122- _r = intro(); \
123- if (_r == EXIT_SUCCESS) \
124- _r = run_test_table(); \
125- _q = outro(); \
126- static_destruct(); \
127- if (_r < 0) \
128- return EXIT_FAILURE; \
129- if (_r != EXIT_SUCCESS) \
130- return _r; \
131- if (_q < 0) \
132- return EXIT_FAILURE; \
133- return _q; \
113+ #define DEFINE_TEST_MAIN_FULL (log_level , intro , outro ) \
114+ int main(int argc, char *argv[]) { \
115+ int (*_intro)(void) = intro; \
116+ int (*_outro)(void) = outro; \
117+ int _r, _q; \
118+ test_setup_logging(log_level); \
119+ save_argc_argv(argc, argv); \
120+ _r = _intro ? _intro() : EXIT_SUCCESS; \
121+ if (_r == EXIT_SUCCESS) \
122+ _r = run_test_table(); \
123+ _q = _outro ? _outro() : EXIT_SUCCESS; \
124+ static_destruct(); \
125+ if (_r < 0) \
126+ return EXIT_FAILURE; \
127+ if (_r != EXIT_SUCCESS) \
128+ return _r; \
129+ if (_q < 0) \
130+ return EXIT_FAILURE; \
131+ return _q; \
134132 }
135133
136- #define DEFINE_TEST_MAIN (log_level ) DEFINE_CUSTOM_TEST_MAIN(log_level, test_nop, test_nop)
134+ #define DEFINE_TEST_MAIN_WITH_INTRO (log_level , intro ) \
135+ DEFINE_TEST_MAIN_FULL(log_level, intro, NULL)
136+ #define DEFINE_TEST_MAIN (log_level ) \
137+ DEFINE_TEST_MAIN_FULL(log_level, NULL, NULL)
0 commit comments