From 82048f400e684eb87d8972db7469adc305c81d19 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Thu, 5 Apr 2018 22:41:28 +0200 Subject: [PATCH] refactor output function to test_session_control_block --- src/kunity.c | 43 ++++++++++++++++++------------------------- src/kunity.h | 15 +++------------ src/kunity_t.h | 33 +++++++++++++++------------------ 3 files changed, 36 insertions(+), 55 deletions(-) diff --git a/src/kunity.c b/src/kunity.c index 132b093..c153296 100644 --- a/src/kunity.c +++ b/src/kunity.c @@ -4,21 +4,6 @@ #include #include -//} -//{ local include region - -//} - -//{ local define region - -//} - -//{ local enum region - -//} - -//{ local typedef region - //} //{local struct region @@ -34,19 +19,19 @@ typedef struct string_builder_sTag { static void printk_put_char(char /* letter */); -static result_code_e set_test_output(/*in */ const ptr_output_functions_s output); +static result_code_e set_test_output(/*in */ const ptr_test_session_control_block_s output); //} //{ local var region -static output_functions_s prink_output = { printk_put_char }; +static test_session_control_block_s prink_output = { printk_put_char, 0, 0 }; -static ptr_output_functions_s kunity_output = &prink_output; +static ptr_test_session_control_block_s kunity_output = &prink_output; static string_builder_s string_builder; -static size_t sizeof_output = sizeof(output_functions_s); +static size_t sizeof_output = sizeof(test_session_control_block_s); //} @@ -57,9 +42,9 @@ void putchark(/* in */ char a) kunity_output->redirect_char(a); } -result_code_e create_default_test_output(/* out*/ ptr_output_functions_s* output_location) +result_code_e create_default_test_output(/* out*/ ptr_test_session_control_block_s* output_location) { - ptr_output_functions_s tmp_output = NULL; + ptr_test_session_control_block_s tmp_output = NULL; if (output_location == NULL) { return ERROR_NULL_ARGUMENT; } @@ -77,7 +62,7 @@ result_code_e create_default_test_output(/* out*/ ptr_output_functions_s* output return OK; } -result_code_e run_unity_test(/* in */ const unity_test_function_ptr test_function, /* in */ const char* file_name, /* in */ const char* test_name, /* in */ int line_number, /* in */ const ptr_output_functions_s output) +result_code_e run_unity_test(/* in */ const unity_test_function_ptr test_function, /* in */ const char* file_name, /* in */ const char* test_name, /* in */ int line_number, /* in */ const ptr_test_session_control_block_s output) { result_code_e result; if (output == NULL) { @@ -89,9 +74,17 @@ result_code_e run_unity_test(/* in */ const unity_test_function_ptr test_functio return result; } - UnityBegin(file_name); + if (output->_skip_start) { + Unity.TestFile = file_name; + } else { + UnityBegin(file_name); + } + UnityDefaultTestRun(test_function, test_name, line_number); - UNITY_END(); + if (!output->_skip_end) { + UNITY_END(); + } + return result; } @@ -121,7 +114,7 @@ static void printk_put_char(char letter) string_builder.write_postion = (string_builder.write_postion + 1) % KUNITY_LINE_SIZE; } -static result_code_e set_test_output(/* in */ const ptr_output_functions_s output) +static result_code_e set_test_output(/* in */ const ptr_test_session_control_block_s output) { if (output == NULL) { return ERROR_NULL_ARGUMENT; diff --git a/src/kunity.h b/src/kunity.h index 1c01439..fac5567 100644 --- a/src/kunity.h +++ b/src/kunity.h @@ -3,30 +3,21 @@ #include "kunity_t.h" //{ global include region + #include -//} -//{ local include region //} -#ifdef __cplusplus -extern "C" { -#endif - //{ function region extern void putchark(/* in */ char a); -extern result_code_e create_default_test_output(/* out*/ ptr_output_functions_s* output_location); +extern result_code_e create_default_test_output(/* out*/ ptr_test_session_control_block_s* output_location); -extern result_code_e run_unity_test(/* in */ const unity_test_function_ptr test_function, /* in */ const char* file_name, /* in */ const char* test_name, /* in */ int line_number, /* in */ const ptr_output_functions_s output); +extern result_code_e run_unity_test(/* in */ const unity_test_function_ptr test_function, /* in */ const char* file_name, /* in */ const char* test_name, /* in */ int line_number, /* in */ const ptr_test_session_control_block_s output); extern result_code_e run_unity_printk_test(/* in */ const kunity_test_function_ptr test_function); //} -#ifdef __cplusplus -} -#endif - #endif // KUNITY_H diff --git a/src/kunity_t.h b/src/kunity_t.h index 240a37f..d9ac7e7 100644 --- a/src/kunity_t.h +++ b/src/kunity_t.h @@ -6,9 +6,6 @@ #include #include -//} -//{ local include region - //} //{ define region @@ -34,16 +31,16 @@ #endif #ifndef KUNITY_TEST -#define KUNITY_TEST(function_name) \ - extern result_code_e KUNITY_CREATE_TEST_NAME(function_name)(const ptr_output_functions_s output); \ - static void function_name(void); \ - \ - result_code_e KUNITY_CREATE_TEST_NAME(function_name)(const ptr_output_functions_s output) \ - { \ - return run_unity_test(function_name, __FILE__, #function_name, __LINE__, output); \ - } \ - EXPORT_SYMBOL(KUNITY_CREATE_TEST_NAME(function_name)); \ - \ +#define KUNITY_TEST(function_name) \ + extern result_code_e KUNITY_CREATE_TEST_NAME(function_name)(const ptr_test_session_control_block_s output); \ + static void function_name(void); \ + \ + result_code_e KUNITY_CREATE_TEST_NAME(function_name)(const ptr_test_session_control_block_s output) \ + { \ + return run_unity_test(function_name, __FILE__, #function_name, __LINE__, output); \ + } \ + EXPORT_SYMBOL(KUNITY_CREATE_TEST_NAME(function_name)); \ + \ static void function_name() #endif @@ -71,16 +68,16 @@ typedef void (*unity_test_function_ptr)(void); //{ struct region -typedef struct output_functions_sTag { +typedef struct test_session_control_block_sTag { redirect_char redirect_char; -} output_functions_s, *ptr_output_functions_s; + bool _skip_start; + bool _skip_end; +} test_session_control_block_s, *ptr_test_session_control_block_s; - -typedef result_code_e (*kunity_test_function_ptr)(ptr_output_functions_s); +typedef result_code_e (*kunity_test_function_ptr)(ptr_test_session_control_block_s); typedef struct test_sTag { const char* name; - const char* modul_name; kunity_test_function_ptr test_function; } test_s, *ptr_test_s;