API Sanity Checker是一个自动生成单元测试用例的工具,可用于链接测试。它可用于三大桌面平台,下面简单介绍它在Linux下的使用步骤:
1. 从http://ispras.linuxbase.org/index.php/API_Sanity_Autotest 下载最新的api-sanity-checker-1.98.6.tar.gz ;
2. 从http://ispras.linuxbase.org/index.php/ABI_Compliance_Checker下载最新的abi-compliance-checker-1.99.9.tar.gz ;
3. 从http://ftp.gnu.org/gnu/binutils 下载最新的 binutils-2.24.tar.gz(不需要安装,Ubuntu中已安装,安装也不要按照第7步中的命令,否则对Linux系统中的个别文件会有所破坏,如安装后gcc -shared命名不能使用了,);
4. 从http://www.perl.org/get.html下载perl5,可以通过命令perl -v来判断是否已经安装;
5. 从http://ctags.sourceforge.net/下载 ctags或者直接用sudo apt-get install ctags(这个也可不安装) ;
6. 将以上文件存放到/home/spring/LinkTest目录中,并解压缩到当前目录下;
7. 安装binutils,进入到此目录下,依次执行:(1)、 ./configure ; (2)、 make ; (3)、make install(或sudo make install);
8. 安装abi compliance checker,执行命令:sudo perl Makefile.pl -install --prefix=/usr ;
9. 安装api sanity autotest,执行命令:sudo perl Makefile.pl -install --prefix=/usr
10. 测试代码使用http://blog.csdn.net/fengbingchun/article/details/41413381;
11. 将终端定位到/home/spring/gdbtest/demo/test ,输入命令: gcc -shared/home/spring/gdbtest/src/add/add.cpp/home/spring/gdbtest/src/subtract/subtract.cpp -o libtest.so ,则会在test目录下生成一个libtest.so动态库;
12. 在test目录下创建一个test.xml文件:
<version> 2014.11.30 </version> <headers> /home/spring/gdbtest/include </headers> <libs> /home/spring/gdbtest/demo/test </libs>
13. 在终端输入命令:api-sanity-checker -lib test1 -d test.xml -gen ,则会在test目录下生成logs和tests两个文件夹,logs/test1/2014.11.30/log.txt,此txt文件中包含了列举了需要用到的头文件和类,以及一些错误信息;tests/test1/2014.11.30/下会有比较多的文件,如测试用例文件groups/add/functions/_Z6CalAddfff/test.cpp,其内容为:
#include <add/add.h> int main(int argc, char *argv[]) { CalAdd(1.5f, 2.5f, 3.5f); //target call return 0; }
14. 输入命令:api-sanity-checker -lib test1 -d test.xml -build,则在tests/test1/2014.11.30/groups/add/functions/_Z6CalAddfff/等对应文件下生成test执行文件,如在编译中出现错误,则会在tests/test1/2014.11.30/目录下产生一个build_fail_list文件;
15. 输入命令:api-sanity-checker -lib test1 -d test.xml -run,则会在当前目录下生成一个test_results文件夹,/test_results/test1/2014.11.30/test_result.html文件会有相应结果分析信息说明,如在run中有测试用例错误,则会在tests/test1/2014.11.30/目录下产生一个run_fail_list文件;
16. api-santify-checker的详细用法可参考/api-santy-checker-1.98.6/doc目录;
17. 其它类似工具可参考: http://www.opensourcetesting.org/unit_c.php