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 //完全用宏实现的,一目了然,不多说了