标签:变量 测试框架 怎么 func 有关 initial 大小 const 优化
第一步:拿到谷歌测试框架的头文件和库文件。 (写个c文件观察它长成什么样子 并模仿他的样子让程序通过编译)
执行后长这样,然后思考要怎么去实现它 !!!
- 里面有个TEST(func, add) { } 没有返回值类型 也没有类型定义 ,所以一定是用宏实现的。
- 逻辑错了会进行报错提示,定位到文件的具体哪行。
- 打印信息包含了函数名等。
写一个test.h 和 test.c 来让他通过编译!!!
再去思考这个RUN__ALL_TESTS有什么用 就返回一个 0 ,他应该不仅仅要返回0 还要打印一些花里胡哨的信息 (打印的信息是有关函数的所以要传递函数指针)
然后我们的TEST宏替换成函数后,要让他先于主函数执行,不然他的功能就没用了。就引出这个宏__attribute__((constructor)) 放在函数前面 ,表明该函数先于主函数执行。
第二步继续观察最后的输出结果 每一组测试都会先打印该组的名字, 所以要将一个函数的信息传到另一个函数, 那么就用到了函数指针数组。
最后输出的结果
第三步就是宏替换进行着色,大量的宏替换, 并输出保存信息和统计信息, 这里分清楚变量的定义和声明
1.颜色封装成宏, 2. 把测试也封装成一个宏
定义一个结构体进行文件中传值,进行输出统计信息
因为错误信息第三行要打印的值的类型四不确定的,所以利用泛型宏进行匹配(泛型宏只能用gcc编译 c11和c11版本上都可以使用)
第四步,进行优化, 将test.c里面对存放函数信息的结构体数组进行替换成链表。这样就可以动态分配大小
定义一个链表外骨骼(随时给一个结构体加上链表的结构,因为拿到下一位的地址是struct LinkNode 的地址所以减去自己的偏移量就可以拿到,下一个结构体的首地址)替换数组,每多一个测试组就会新建一个节点连接起来。
标签:变量 测试框架 怎么 func 有关 initial 大小 const 优化
原文地址:https://www.cnblogs.com/huatouge/p/13854294.html