APR中的单元测试框架

我所了解的C的单元测试框架很少,至少我google了一把没有发现一个比较成熟的。我以前也写过一个C的单元测试框架,但是不够灵活,也不太好用。今天在看APR的源文件时发现了APR内部使用的测试框架。所谓内部使用,就是不提供APR库不提供接口给外部使用。不过这个框架很简单,也非常实用,分析分析拿来自己用还是相当划算的。

框架的名字叫abts,我真不知道这个名字的含义,可能由于APR内部使用,所以在代码中对这个名字也毫无注释(整个测试框架的注释都很少)

框架代码主要在abts.h和abts.c中。


入口函数
1. 首先进行命令行参数的解析。根据命令行参数设置相应的全局变量。
-v :是否以冗长方式打印测试结果。打印出错的行号,期望值以及实际值;
-x:这个参数是表示只测试除了指定文件之外的测试用例。如test -x test1 test3 表示测试除了test1、test3文件之外的测试用例;
-l:表示仅仅只列出包含测试用例的文件名,而不执行测试用例(去掉后缀);
-q:是否显示测试进度;
 

2. 执行每一个测试用例,代码很简洁
  1. for (i = 0; i < (sizeof(alltests) / sizeof(struct testlist *)); i++) {
  2.     suite = alltests[i].func(suite);
  3. }
alltests中包含全部的测试用例,alltests在abts_tests.h文件中,如下所示。
  1. const struct testlist {
  2.     abts_suite *(*func)(abts_suite *suite);
  3. } alltests[] = {
  4.     {testatomic},
  5.     {testdir},
  6.     {testdso},
  7.     //...  
testlist结构体只包含一个函数指针,这个函数指针指向的就是每一个测试用例函数。

3. 调用report函数生成测试用例报告。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值