Skip to content

Commit d7cabc3

Browse files
committed
增加用于关闭输出通过的测试样例的信息的宏;宏接口的参数增加括号;优化测试结束后的输出,修复了遗漏输出最后一个测试项结束信息的 bug
1 parent 3b7946d commit d7cabc3

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,8 @@ CMake 3.5 或更高版本。
2828

2929
1.`rmdev_test_framework.h` 头文件包含到主函数所在的文件中。
3030
2. 在测试代码的主函数中调用 `rmdev_test_framework_main()` 函数。相关参数可参考阅读函数的注释,或者参考本项目的测试代码示例。
31+
32+
## 额外功能
33+
34+
* 预定义宏 `RMDEV_TEST_DO_NOT_PRINT_PASSED_TEST` 可用于控制是否输出测试通过的测试样例。
35+
默认为 `0`,表示会输出测试样例通过的信息。将这个宏定义为 `1` 后,将不会输出测试样例通过的信息,只会输出未通过的测试样例的信息。

inc/rmdev_test_framework.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ extern "C" {
1414
#endif
1515

1616
typedef unsigned char rmdev_test_bool_t;
17-
#define RMDEV_TEST_TRUE 1U
18-
#define RMDEV_TEST_FALSE 0U
17+
#define RMDEV_TEST_TRUE (1U)
18+
#define RMDEV_TEST_FALSE (0U)
1919

2020
#define RMDEV_TEST_NULL ((void*)0)
2121

@@ -63,7 +63,7 @@ void rmdev_test_item(const char* name, const char* file, int line);
6363
* rmdev 测试框架 定义一个测试项
6464
* @param name 测试项名称
6565
*/
66-
#define RMDEV_TEST_ITEM(name) rmdev_test_item(name, __FILE__, __LINE__)
66+
#define RMDEV_TEST_ITEM(name) rmdev_test_item((name), __FILE__, __LINE__)
6767

6868
/**
6969
* rmdev 测试框架 检查布尔表达式是否正确(测试失败后会继续运行)
@@ -78,7 +78,7 @@ void rmdev_test_check(const char* file, int line, rmdev_test_bool_t result);
7878
* rmdev 测试框架 检查布尔表达式是否正确(测试失败后会继续运行)
7979
* @param result 待检查的布尔表达式
8080
*/
81-
#define RMDEV_TEST_CHECK(result) rmdev_test_check(__FILE__, __LINE__, result)
81+
#define RMDEV_TEST_CHECK(result) rmdev_test_check(__FILE__, __LINE__, (result))
8282

8383
/**
8484
* rmdev 测试框架 断言布尔表达式是否正确(测试失败后会停止测试)
@@ -93,7 +93,7 @@ void rmdev_test_assert(const char* file, int line, rmdev_test_bool_t result);
9393
* rmdev 测试框架 断言布尔表达式是否正确(测试失败后会停止测试)
9494
* @param result 待检查的布尔表达式
9595
*/
96-
#define RMDEV_TEST_ASSERT(result) rmdev_test_assert(__FILE__, __LINE__, result)
96+
#define RMDEV_TEST_ASSERT(result) rmdev_test_assert(__FILE__, __LINE__, (result))
9797

9898
#ifdef __cplusplus
9999
}

src/rmdev_test_framework.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77

88
#include "rmdev_test_framework.h"
99

10+
#ifndef RMDEV_TEST_DO_NOT_PRINT_PASSED_TEST
11+
#define RMDEV_TEST_DO_NOT_PRINT_PASSED_TEST RMDEV_TEST_FALSE
12+
#endif
13+
1014
enum {
1115
RMDEV_TEST_NO_ERROR = 0, ///< 无错误
1216
RMDEV_TEST_NO_BREAK_CHARACTER, ///< 没有设置换行符
@@ -112,7 +116,10 @@ void rmdev_test_check(const char* file, const int line, const rmdev_test_bool_t
112116
++test_item_index;
113117

114118
if (result) {
119+
#if (!RMDEV_TEST_DO_NOT_PRINT_PASSED_TEST)
115120
printfCallback_("No.%d passed.%s", test_item_index, break_character);
121+
#endif
122+
116123
++success_count;
117124
++test_item_success_count;
118125
}
@@ -134,7 +141,10 @@ void rmdev_test_assert(const char* file, const int line, const rmdev_test_bool_t
134141
++test_item_index;
135142

136143
if (result) {
144+
#if (!RMDEV_TEST_DO_NOT_PRINT_PASSED_TEST)
137145
printfCallback_("No.%d passed.%s", test_item_index, break_character);
146+
#endif
147+
138148
++success_count;
139149
++test_item_success_count;
140150
}
@@ -208,5 +218,7 @@ void rmdev_test_framework_main(const char* break_char,
208218

209219
testItemCallback_();
210220

221+
rmdev_test_item_finish(current_test_item_name);
222+
211223
rmdev_test_finish();
212224
}

0 commit comments

Comments
 (0)