代码测试~
来源:互联网 发布:ipad做动画软件 编辑:程序博客网 时间:2024/05/20 18:46
几个link:
http://blog.csdn.net/ashhyc/archive/2007/04/10/1558598.aspx
http://www.itqun.net/content-detail/233955.html
http://blog.chinaunix.net/u2/66806/showart_2229074.html
http://hi.baidu.com/lianxl1983/blog/item/211b0a50fcbf645b1138c25e.html
Linux 下的代码覆盖率检查工具 gcov lcov 昨天试了试,遇到奇怪的问题
一、关于gcov工具
gcov伴随gcc 发布。gcc编译加入-fprofile-arcs -ftest-coverage 参数生成二进制程序,执行测试用例生成代码覆盖率信息。
1、如何使用gcov
用GCC编译的时候加上-fprofile-arcs -ftest-coverage选项,链接的时候也加上。
fprofile-arcs参数使gcc创建一个程序的流图,之后找到适合图的生成树。只有不在生成树中的弧被操纵(instrumented):gcc添加了代码来清点这
些弧执行的次数。当这段弧是一个块的唯一出口或入口时,操纵工具代码(instrumentation code)将会添加到块中,否则创建一个基础块来包含操纵
工具代码。gcov主要使用.gcno和.gcda两个文件。
.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息。
.gcda是由加了-fprofile-arcs编译参数的编译后的文件运行所产生的,它包含了弧跳变的次数和其他的概要信息。
Gcov执行函数覆盖、语句覆盖和分支覆盖。
举个例子,程序代码由main.c和tmp.c两个文件组成,编译、链接、运行程序
编译:gcc -fprofile-arcs -ftest-coverage -o myapp main.c tmp.c
运行:./myapp
然后 输入
命令: gcov main.c,gcov tmp.c
这个时候当前目录下有了新的文档main.c.gcov,和tmp.c.gcov
……
LCOV README 文件(翻译)
作者:终南 <li.zhongnan@hotmail.com>
-------------------------------------------------
- README file for the LTP GCOV extension (LCOV) -
- Last changes: 2008-11-17 -
-------------------------------------------------
说明
-----------
GCOV 是一个 GNU 工具,当运行一个特定的测试用例后,通过GCOV 可以查看一个程序的那些代码被实际执行。 LCOV 是GCOV的一个扩展工具。该扩展由一套 PERL 脚本组成,基于 GCOV 的文本式输出来实现以下增强的功能:
* 基于 HTML 的输出:使用条形图和不同的颜色来表示。
* 支持大型项目:信息汇总页面提供三个层次的代码覆盖细节信息:目录视图、文件视图和源代码视图,允许快速浏览代码覆盖数据。
LCOV 最初为支持 Linux 内核代码覆盖评估而设计,但是同样可用于测量标准用户空间应用程序的代码覆盖率。
README 目录
-----------------------
1. 相关文件
2. 安装 LCOV
3. 如何访问内核代码覆盖数据的示例
4. 如何访问用户空间应用程序代码覆盖数据的示例
5. 问题和评论
1. 相关文件
------------------
README - 该 README 文件
CHANGES - 各发行版本的更新列表
bin/lcov - 收集 LCOV 代码覆盖数据的工具
bin/genhtml - 根据 LCOV 数据生成 HTML 输出的工具
bin/gendesc - 创建说明文件的工具,同时也被 genhtml 使用
bin/geninfo - 内部工具(创建 LCOV 数据文件)
bin/genpng - 内部工具(创建源代码文件的 png 图形汇总信息)
bin/install.sh - 内部工具(安装和卸载)
descriptions.tests - LTP 软件包的测试说明文件,被 gendesc 使用
man - 放置 LCOV 使用工具的 man 页面的目录
example - 用来演示 LCOV 的示例文件目录
lcovrc - LCOV 配置文件
Makefile - Makefile 文件,包含 'install' 和 'uninstall' 目标
2. 安装 LCOV
------------------
可以从以下页面选择下载 LCOV 软件包,RPM 或 tarball 形式:
http://ltp.sourceforge.net/coverage/lcov.php
为安装 tarball,将软件包解压到一个目录然后运行:
make install
也可以使用匿名 CVS 来获取最新版本(但可能是不稳定的版本):
cvs -d:pserver:anonymous@ltp.cvs.sourceforge.net:/cvsroot/ltp login
(当询问密码时,按回车即可)
cvs -z3 -d:pserver:anonymous@ltp.cvs.sourceforge.net:/cvsroot/ltp export -D now utils
切换到 utils/analysis/lcov 目录然后输入:
make install
3. 如何访问内核代码覆盖数据的示例
---------------------------------------------------
前提条件:从以下页面下载并安装 gcov-kernel 软件包:
http://sourceforge.net/projects/ltp
将最终的 gcov 内核模块文件复制到 system wide modules 目录或者 PERL 脚本所在目录。以 root 身份, 执行:
a) 重置计数器
lcov --zerocounters
b) 收集当前代码覆盖状态到一个文件
lcov --capture --output-file kernel.info
c) 获取 HTML 输出
genhtml kernel.info
使用 web 浏览器打开 index.html 文件查看代码覆盖结果。
4. 如何访问用户空间应用程序代码覆盖数据的示例
---------------------------------------------------------------------
前提条件:使用 GCC 以 -fprofile-arcs 和-ftest-coverage 选项编译程序。假设编译目录名称为 "appdir",然后执行:
a) 重置计数器
lcov --directory appdir --zerocounters
b) 收集当前代码覆盖状态到一个文件(应用程序启动和停止至少一次后,该命令才能正常工作)
lcov --directory appdir --capture --output-file app.info
c) 获取 HTML 输出
genhtml app.info
使用 web 浏览器打开 index.html 文件查看代码覆盖结果。
5. 问题和评论
-------------------------
参见软件包中的 man 页面,以便获取如何使用 LCOV 工具的详细信息。
有关这些工具的问题和评论,请通过电子邮件联系,LTP 电子邮件列表:ltp-coverage@lists.sourceforge.net。
原文地址 http://hi.baidu.com/li_zhongnan/blog/item/8a386bca49b4d241f31fe737.html
- 测试代码
- 测试代码
- 代码测试
- 测试代码
- 测试代码
- 测试代码
- 测试代码
- 代码测试
- 代码测试
- 测试代码
- 代码测试~
- 测试代码
- 测试代码
- 代码测试
- 代码测试
- 测试代码
- 测试 代码
- 代码测试
- Java字体
- VC 图形填充
- VC 图形填充
- PHP开发工程师
- linux下 scp命令不需要输入用户密码
- 代码测试~
- kernel helper for NPTL support on ARM
- 面试问题1
- 闲话QTP--孔明的QTP
- SharpDevelop
- Maven 调用 ant进行编译!!
- 在ArcMap中使用Field Calculator处理数据
- 船载/航载黑匣子记录设备的核心硬件及操作系统
- 关于 UI 设计你需要自问的 10 个问题