1 下载CUnit安装包CUnit-2.1-3.tar.bz2保存至/home/用户/

(安装包版本为文章做成时2016-05-25的最新版本)

https://sourceforge.NET/projects/cunit

2 解压缩安装包

tar jxvf CUnit-2.1-3.tar.bz2

3 进入解压后的文件夹CUnit-2.1-3

cd CUnit-2.1-3

4 执行make,分别执行以下命令

aclocal

autoheader

autoconf

automake

如果在automake过程中有文件丢失,则执行下面命令:

automake --add-missing

再次执行automake

如果出现错误:configure.in:161:required file './ltmain.sh' not found,则执行下面的命令:

libtoolize --automake --copy --debug --force

执行完上述步骤以后,查看是否生成了configure,如果有,则执行:

./configure

执行完上述步骤以后,查看是否生成了Makefile,如果有,则执行:

make

安装编译出的库:

sudo make install

查看是否已经安装成功:

ls /usr/local/lib/libcunit.so

5 样例代码做成

5.1 CUnit官网上的样例代码拷贝并保存至/home/用户/test下面,记为test.c

http://cunit.sourceforge.net/example.html

5.2 编译t.c

gcc -o t t.c -lcunit

5.3 运行t

./t

5.4正常运行的话会产生以下结果画面

6 生成测试代码覆盖率报告

6.1 重新编译t.c

gcc -fprofile-arcs -ftest-coverage -o t t.c -lcunit

6.2 运行t

./t

6.3 生成覆盖率数据中间文件

gcov t.c

6.4 生成xml形式的覆盖率报告文件至app.info文件

lcov --directory . --capture --output-file app.info

6.5 生成html形式的覆盖率报告文件至results文件夹,数据来源文件为app.info

genhtml -o results app.info

6.6 正常的话会生成下述的html页面

linux C单元测试工具CUnit的编译安装及使用的更多相关文章

  1. linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本

    linux自动交互工具expect,tcl安装,以及自动互信脚本 工作中需要对几十台服务器做自动互信,无意中发现expect命令,研究一番. 在网上找了许多资料也没有安装成功,摸索着总算成功了.现分享 ...

  2. Linux 日志分析工具(logwatch)安装及使用

    Linux 日志分析工具(logwatch)安装及使用 日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态.但是日志管理又是一项非常枯燥的工作,如果需要管理 ...

  3. Linux中服务器软件为什么需要编译安装

    为什么服务器软件需要编译安装?一个流传很广的说法是编译安装性能更好,其实这是个谣言. 服务器CPU事实已经被Intel垄断了,就那么几种型号,编来编去生成的机器码是一样的.Intel宣传自己的编译工具 ...

  4. 压测工具wrk的编译安装与基础使用

    Linux上编译安装: [root@centos ~]# cd /usr/local/src [root@centos ~]# yum install git -y [root@centos ~]# ...

  5. linux下Mysql 8.0.19 编译安装

    1 前言 linux下安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,这 ...

  6. Linux下./configure && make && make install 编译安装和卸载

    正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install).   configure文件是一个可执行的脚本文件,它有很多选项, ...

  7. Linux下SSH工具 PAC Manager的安装

    PAC Manager, Linux下类似SecureCRT Xshell的SSH工具,该工具功能上相当的不错,完全可以代替SecureCRT Xshell的功能. PAC (Perl Auto Co ...

  8. Linux MySQL单实例源码编译安装5.5.32

    cmake软件 tar -zxvf cmake-2.8.8.tar.gz cd cmake-2.8.8 ./bootstrap make make install cd ../   依赖包 yum i ...

  9. Linux MySQL单实例源码编译安装5.6

    cmake软件 tar -zxvf cmake-2.8.11.2.tar.gz cd cmake-2.8.11.2 ./bootstrap make make install cd ../   依赖包 ...

随机推荐

  1. 3675: [Apio2014]序列分割

    Description 小H最近迷上了一个分隔序列的游戏.在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列.为了得到k+1个子序列,小H需要重复k次以下的步骤: 1.小H首 ...

  2. Lr原理初识-hc课堂笔记

    showslow web服务器-apache.ngix devops 需求调研-占1/3的时间. 架构拓扑图 APP端测试工具:JT.Vtest 进程是管理单元.线程是执行单元. 虚拟用户和真实用户是 ...

  3. UART串口通信

    #include "sys.h" #include "delay.h" #include "usart.h" u8 rdata[]; UAR ...

  4. js阻止事件冒泡的两种方法

    1.什么是JS事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这 ...

  5. C# 匿名类型var

    格式: var 名字=new {字段赋值}:c#中只是作为推断,根据赋值推断出类型,隐式类型 var. 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型. 1)var类 ...

  6. ASP.NET Core中,UseDeveloperExceptionPage扩展方法会吃掉异常

    在ASP.NET Core中Startup类的Configure方法中,有一个扩展方法叫UseDeveloperExceptionPage,如下所示: // This method gets call ...

  7. [Baltic 2011]Lamp BZOJ2346

    分析: 建图最短路,比较裸. 我们可以考虑,如果是‘\’那么,左上连右下边权为0,左下连右上边权为1,反之亦然. 卡裸spfa,加点优化能过,我就直接改成的堆优化Dijkstra 附上代码: #inc ...

  8. C# read write ini file

    [DllImport("kernel32")] private static extern long WritePrivateProfileString(string sectio ...

  9. 2017-2018-2 20155230《网络对抗技术》实验5:MSF基础应用

    基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit 就是运行该模块吧,在msf的模块中配置好各项属性后exploit一下就开始运行使用该模块了 paylo ...

  10. SVD(奇异值分解)小结

    注:奇异值分解在数据降维中有较多的应用,这里把它的原理简单总结一下,并且举一个图片压缩的例子,最后做一个简单的分析,希望能够给大家带来帮助. 1.特征值分解(EVD) 实对称矩阵 在理角奇异值分解之前 ...