redis源码笔记-testhelp
testhelp.h是作者为redis量身定做的单元测试框架,对于redis这种规模的项目,就没有必要上GTEST这种大杀器了,作者18行代码搞定。
不过很遗憾,在2.4.10这个版本的版本的redis中,只有sds用了这个测试框架,不知其他代码作者是如何做测试的。我慢慢摸索,摸索到了告诉大家。
1 #ifndef __TESTHELP_H 2 #define __TESTHELP_H 3 4 int __failed_tests = 0; //失败的测试用例数 5 int __test_num = 0; //总的测试用例数 6 #define test_cond(descr,_c) do { \ 7 __test_num++; printf("%d - %s: ", __test_num, descr); \ 8 if(_c) printf("PASSED\n"); else {printf("FAILED\n"); __failed_tests++;} \ 9 } while(0); 10 #define test_report() do { \ 11 printf("%d tests, %d passed, %d failed\n", __test_num, \ 12 __test_num-__failed_tests, __failed_tests); \ 13 if (__failed_tests) { \ 14 printf("=== WARNING === We have failed tests here...\n"); \ 15 } \ 16 } while(0); 17 18 #endif //完全用宏实现的,一目了然,不多说了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架