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. NOIP模拟赛-2018.11.5

    NOIP模拟赛 好像最近每天都会有模拟赛了.今天从高二逃考试跑到高一机房,然而高一也要考试,这回好像没有拒绝的理由了. 今天的模拟赛好像很有技术含量的感觉. T1:xgy断句. 好诡异的题目,首先给出 ...

  2. loglevel-metamask

    pimterry/loglevel https://github.com/pimterry/loglevel Minimal lightweight simple logging for JavaSc ...

  3. java疯狂讲义--摘要

    1.一个java文件中可以有多个类,但是只能有一个public类,并且该类需要与文件同名 第6章 对象的软,弱和虚引用 1.强引用---创建一个对象,并把这个对象赋给一个引用变量.一个对象被一个以上的 ...

  4. OpenCV——Brisk特征检测、匹配与对象查找

    检测并绘制特征点: #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include < ...

  5. jqgrid 设置隔行换色

    有时,为美观效应,需要设置jqgrid隔行换色.jqgrid提供altRows属性来配置 启动隔行换色:altRows: true,//隔行换色 $("#filterGrid"). ...

  6. 20155237 2016-2017-2 《Java程序设计》第十周学习总结

    20155237 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 计算机网络,是指分布在不同地理区域的计算机用通信线路互连起来的一个具有强大功能的网络系统.网 ...

  7. 20155317 十六周second 取值

    20155317 十六周second 取值 题目如下图: secondset #define base 0xFFFFC0000 # #define &clock void setsecond( ...

  8. 20155325 Exp6 信息搜集与漏洞扫描

    实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的 ...

  9. Java 多线程(二)之 Thread 优先级

    目录 Thread 中线程优先级相关属性 相关函数 优先级初始化 设置优先级 获取优先级 默认优先级 指定优先级 注意事项 优先级继承 @ Thread 中线程优先级相关属性 每个线程均有优先级,在 ...

  10. Java类加载器学习笔记

    今后一段时间会全面读一下<深入理解Java虚拟机> 在这里先记一下在网上看到的几篇介绍 类加载器 的文章,等读到虚拟机类加载机制再详细介绍. 超详细Java中的ClassLoader详解 ...