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 callreturn 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

API Sanity Checker在Ubuntu中的使用相关推荐

  1. abp 打包部署到ubuntu_如何在Ubuntu中安装Docker和运行 Docker容器

    Docker是一种开源且流行的操作系统级虚拟化(俗称"容器化")技术,主要在Linux和Windows上运行. Docker使用容器可以更轻松地创建,部署和运行应用程序. 使用容器 ...

  2. 深入理解JVM虚拟机-Ubuntu中安装openJDK

    最近利用闲暇时间看了看<深入理解java虚拟机>来提高自身得知识储备,再这里准备将读书学习到得知识和个人的心得记录下来.首先调整好自己的心态,不要浮躁,因为编译阶段会无限踩坑. 1.安装V ...

  3. 在Ubuntu中安装OpenCV-Python | 三

    在本教程中,我们将学习在Ubuntu System中设置OpenCV-Python.以下步骤针对Ubuntu 16.04和18.04(均为64位)进行了测试. 可以通过两种方式在Ubuntu中安装Op ...

  4. 在ubuntu中设置使用网络摄像头

    介绍 目录 选择网络摄像头 使用Cheese测试您的网络摄像头 网络摄像头软件 配置网络摄像头软件 VLC FFmpeg的 MPlayer的 MEncoder的 Skype的 飘带 识别您的网络摄像头 ...

  5. mp3 添加封面 linux,Qmmp音乐播放器1.2.0发布! Ubuntu中安装方法

    Qmmp是一款基于Qt的音乐播放器,它具有winamp或xmms接口,目前已经发布了1.2.0版本(Qt4版本为0.11.0),并增加了许多新功能,改进以及一些错误修复. Qmmp 1.2.0(0.1 ...

  6. Ubuntu中安装部署Janus

    1. 环境 在 Ubuntu 16.4.5 TLS 版本中编译和测试通过. (CentOS下的部署可以参考<Janus部署总结>一文) 下载最新的源代码需要git,若没有安装git可以使用 ...

  7. ubuntu中启用ssh服务

    ssh程序分为有客户端程序openssh-client和服务端程序openssh-server.如果需要ssh登陆到别的电脑,需要安装openssh-client,该程序ubuntu是默认安装的.而如 ...

  8. ubuntu chrome java插件_在Ubuntu中为Chrome安装Java插件

    问题描述 我有JDK,在Ubuntu中一切正常,我是说IDE,一些应用程序,我能够开发和运行项目,但是我在Chrome中收到一条消息:Java(TM) is required to display t ...

  9. Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案

    关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案 转载于:https://www.cnblogs.com/daemonFlY/p/10916812. ...

最新文章

  1. kux格式怎么转换成mp3_把MP3格式的音频转换成WAV格式
  2. SpringBoot高级消-息-RabbitMQ基本概念简介
  3. Getter DI是个好主意吗?
  4. 怎样测量地图上曲线的长度_测量长度的特殊方法
  5. 如何删除git config中的某一个配置项
  6. H3C三层交换机划分VLAN示例
  7. java将数组加上千分号_PHP实现对数字分隔加千分号的方法
  8. 服务器测试文档格式,服务器测试文档格式
  9. java文件生成jar包_编译Java文件并生成jar包
  10. 学习pytorch: API 学习
  11. ios真机中Text组件出现多余边框
  12. python3爬虫必学Xpath,快速使用lxml.etree
  13. javascript学习指南,javascript自学要多久
  14. JBoss下载与安装
  15. 【推荐】四款数据库可视化操作工具
  16. MacBook在任意文件夹目录打开终端
  17. Qt自定义控件创建和使用
  18. 互联网的前世今生:Web 1.0、2.0、3.0
  19. 袋式过滤器 - - 过滤与分离的基本原理,结构和布局的控制袋式过滤器
  20. 平面设计中的简约设计到底指什么?

热门文章

  1. 【opencv】(7) 图像匹配、直方图、图像均衡化
  2. ADPRL - 近似动态规划和强化学习 - Note 8 - 近似策略迭代 (Approximate Policy Iteration)
  3. Windows DOS窗口查看历史执行过的命令的三种方式
  4. 二分查找算法的一点改进
  5. Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器
  6. leetcode-53 最大子序和
  7. L1-027 出租 (C++暴力解法)
  8. Python中lxml库的安装(Windows平台)
  9. ASP.NET WebAPI 11 参数验证
  10. AEC、AGC、ANS在视音频会议中的作用?