在嵌入式平台上使用了gtest白盒测试工具,覆盖了被测函数,但是不知道自己测试的效果如何,测试行覆盖率.函数覆盖率,分支覆盖率的数据. 便开始研究gcov这个代码覆盖率工具能否使用,来检查白盒测试的效果,以及指引测试改进的方向.经过多次尝试和研究, 在嵌入式平台上可以使用gcov这个工具,不过操作稍微复杂点. 环境要求: 1.有被测组件的源代码 2.对应平台的交叉编译器必须包含gcov功能 3.安装好lcov工具 4.相应的嵌入式设备 使用gcov/lcov测试代码覆盖率,总共分为四步: 1.在…
看了coderzh大神写的gtest(http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html)使用的帖子,觉得gtest这个工具比较好用.就想引入的现在的测试工作中,但是我从事的是嵌入式的的软件测试,使用的是嵌入式的linux系统,芯片是海思等芯片.无法直接使用gtest这个工具,用Google百度搜素了半天,也没有找到使用的案例. 但是这么好的工具,不能用实在是可惜,我偏不信这个邪.经过了多次尝试,下面的方法可行. 详细的过…
索引 一.概述 二.关于gcov的安装 三.代码覆盖率测试(以GCOV为例) 1.编译源代码 2.运行可执行程序 3.通过gcov指令生成代码覆盖率报告 四.生成更全面.直观的代码覆盖率报告 1.LCOV 2.GCOVR 五.参考 一.概述 代码覆盖率(Code coverage)是衡量软件测试质量的一个重要指标. 它描述了当一个特定的测试套件(test suite)运行时,程序源代码被执行的程度.例如,一些更具体的覆盖率指标有: Statement Coverage:描述源代码中有哪些代码行被…
原文: http://www.cnblogs.com/turtle-fly/archive/2013/01/09/2851474.html ---------------------------------------------------------------------------------------- 写在前面 这个过程几乎从0开始,在此之前,我几乎没有在 linux 下编译链接过项目.没有接触过 makefile.没有读过 man-db.只 gcov 过一个仅有几个C文件的项目…
所谓组件式开发平台,它所有的功能模块都是以组件的形式扩展的,下面我来演示一个简单的组件开发例程. Agile.Net开发管理平台项目,已经托管在开源中国码云平台(http://git.oschina.net) 登陆码云平台进入项目主页(http://git.oschina.net/MuAgile/AgileDevelop)即可浏览下载源代码. 1.开发环境搭建    软件安装请参考文章<Agile.Net 组件式开发平台 - 开发环境部署> 下载项目[AgileDevelop]->[附件…
QT4.8.5环境移植到嵌入式平台 参考:Qt移植到ARM Linux教程 http://www.veryarm.com/930.html 清除配置: sudo make confclean 配置:   sudo ./configure -prefix /opt/qt-4.8.5 -opensource -release -shared -Declarative -importdir /opt/qt-4.8.5/imports -fast -no-largefile -qt-sql-sqlite…
原文链接: Michael Leonard 翻译: 极客范- 小道空空 译文链接: http://www.geekfan.net/5246/ 嵌入式平台选择:树莓派 or BeagleBone Black(BBB) 已经有很多文章比较过Arduino.树莓派和BeagleBone Black(BBB),但本文的侧重点不同.我相信大家都会认为Arduino和另外两者明显属于不同的阵营,因为Arduino的用途完全不一样.我曾试图去寻找这样一篇文章但最终没有找到:它全面的比较树莓派和BBB的优缺点并…
gcc是linux平台下的C.C++ 编译器 gcov是配合gcc产生覆盖信息报告的工具: lcov是将gcov产生的报告信息,以更直观的方式显示出来工具 基本的使用方法分为4个阶段: (一).gcc编译:产生插装后的目标文件test.gcov结点文件 test.gcno #gcc -fprofile-arcs -ftest-coverage -o test test.c # ls test   test.c   test.gcno 说明:参数 fprofile-arcs 和 ftest-cov…
1.下载并安装 Eclipse IDE for C/C++ Developers https://eclipse.org/downloads/packages/eclipse-ide-cc-developers/lunasr1 2.下载并安装Cygwin https://www.cygwin.com/ 安装选择package的时候记得要选择gcc相关的所有 测试时使用到了boost,因此把boost相关的也装上 Devel下的包尽量都装一下. 3.下载并安装CDT gcov plugin htt…
7寸触摸屏介绍产品名称:7寸IPS高清屏幕分辨率:1280*800触摸屏类型:电容屏(五点触摸)接线方式: FPC 可应用于嵌入式一体机.自动售货机.广告机.智能自动终端.零售终端等 ARM平台处理器:尺寸:50mm*60mm高度:核心板连接器为1.5mm4418 CPU:ARM Cortex-A9 四核 S5P4418处理器 1.4GHz6818 CPU:ARM Cortex-A53 八核 S5P6818处理器 1.4GHz内存:1GB DDR3(2GB可选)存储:16GB EMMC电源管理:…
最近产品中要用到opus,圣上一声令下,把opus移植到我们平台上,什么?opus?opus是什么?在一脸 茫然中,我这特种兵码农就赤手空拳上战场了. 废话少说,赶紧在网站:https://opus-codec.org/downloads/ 把最新的稳定的opus源码opus-1.2.1.tar.gz下载 到本地linux:解压缩之后,在根目录下执行: .configure make make install 在一路顺利的情况下,已经可以在linux看opus怎么用了,这里面,有很多例子,以个人…
1.配置平台 来源:http://www.cnblogs.com/xiaobo-Linux/p/7955769.html 2. 选择远程 3. 填写信息 JRE 路径是树莓派上的路径:how? sudo update-alternatives --display java 输出 java - auto mode link best version is /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java link currently poi…
转自:http://www.cnblogs.com/liu_xf/archive/2011/04/14/2015726.html 摘要: 当我们在调试代码时,通常需要将程序中的某个变量打印至PC机上,来判断我们的程序是否按预期的运行,printf函数很好的做到了这一点,它能直接以字符的方式输出变量名和变量的值,这样使输出的信息很直观:但printf函数在使用时,不仅仅要初始化串口,还需要其它的一些设置或者要调用其它的一些函数,否则printf函数将不能按我们想要的方式执行. 由于不同的编译器st…
第一部分:系统基础配置 系统基础配置中主完成了安装大数据环境之前的基础配置,如防火墙配置和安装MySQL.JDK安装等 第一步:关闭防火墙 Hadoop与其他组件的服务需要通过端口进行通信,防火墙的存在会阻拦这些访问,在初学阶段建议将防火墙全部 关闭,命令如下. systemctl stop firewalld.service vi /etc/selinux/config # Selinux策略 SELINUX=disabled #更改为disabled关闭状态 第二步:安装JDK JDK安装包…
ssh解释说明 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎所有UNIX平台-包括HP-UX.Linux.AIX.S…
#!/bin/bash#author xiaoweige#todo: ip -- > ingredient or ingredient -- > ip #todo: get the ip of the given ingredientfunction ingredient_ip() {#todo: get the ip of the ingredient given mysql -uroot -pengine -e "select * from ipandingredient.ipa…
CPU:RK3288 1.通过 ubuntu cdimage 下载 ubuntu16.04 内核,以下两种方式都可以 在 windows 系统网页中下载 http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release 版本:ubuntu-base-16.04-core-armhf.tar.gz 在 linux 系统中通过指令下载 $ wget http://cdimage.ubuntu.com/ubuntu-base/releases/1…
ROM(Read Only Memory)和RAM(Random Access Memory)指的都是半导体存储器,ROM在系统停止供电的时候仍然可以保持数据,而RAM通常是在掉电之后就丢失数据,典型的RAM就是计算机的内存. ROM有很多种,PROM是可编程的ROM,它和EPROM(可擦除可编程ROM)的区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这是早期的产品,现在已经不再使用,而EPROM是通过紫外光的照射擦出原先的程序的一种通用存储器.另外一种EEPROM是通过电子擦除,…
本人也时常看其他人的blog,搜索资料的目的是尽快解决当前的问题,例如如何移植一个ssh,尽快要明白所需的东西,方能移植完成. 移植sqlite3的步骤如下: 1. 到官方网站下载指定的源码包:https://www.sqlite.org/2020/sqlite-autoconf-3340000.tar.gz 2.linux系统下解压.配置编译方式.编译 root@ubuntu:/home/watson/real-watson# tar xf sqlite-autoconf-3340000.ta…
一.安装 gcov:是随gcc一起发布的,并不需要独立安装:lcov:其他博客说是随ltp发布的,结果下载下ltp之后编译了10多分钟,最后也没见lcov,最后到sourceforge下载了lcov单独的代码: wget http://ncu.dl.sourceforge.net/project/ltp/Coverage Analysis/LCOV-1.12/lcov-1.12.tar.gz tar -zxvf lcov-1.12.tar.gz make make install 二.使用 以h…
下载地址:http://download.qt.io/ 当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受 获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受 Qt for windows7-64bit 在电脑上安装mingw(搜索mingw for windows),将C:\MinGW\bin添加进环境变量,打开命令行输入gcc --version…
业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台.软件基础架构平台之间的交互与管理问题”.操作系统平台解决了“应用软件系统与硬件之间的交互与管理问题”,软件基础架构平台解决了“应用软件系统与操作系统平台之间的交互与管理问题”,而业务基础平台则是解决了“应用软件的业务描述与操作系统平台.软件基础架构平台之间的交互与管理问题”.如下图所示: 图 1. 业务基础平台在技术架构中的位置 业务基础平台的组件化,并不是所有的内容全部组件化,有些内容是无法分离…
敏捷开发体系   软件构件技术:所谓软件构件化,就是要让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装.软件的构件化和集成技术的目标是:软件系统可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地.动态地集成.这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上. 软件复用技术:软件复用就是将已有的软件成分用于构造新的软件系统.可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当…
平台介绍 Agile.Net 组件式开发平台是一款针对企业级产品的开发框架,平台架构基于SOA服务体系,多层组件式架构打造.平台提供企业应用开发所需的诸如ORM.IOC.WCF.EBS.SOA等分布式架构,消息总线.二级缓存.数据报表.代码生成.自动更新一系统的快速开发工具,涵盖开发过程中的设计.编码.集成.部署.运维等各个环节. Agile.Net 组件式开发平台是一款基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立…
转自https://www.ibm.com/developerworks/cn/webservices/1111_xiaojg_soa/index.html 业务基础平台是业务逻辑和基础架构平台之间的一个中间层,对于提高软件开发效率.降低开发难度起到一个非常重要的作用,因此成为很多软件开发商的核心基础平台.本文将介绍一个基于组件化,构建易于扩展.易于升级的业务基础平台思路. 前言 业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台.软件基础架构平台…
目录 1.前言 2.数据接口的获取 3.Qt界面的实现 4.在开发板上运行Qt程序 5.最终效果 6.代码下载 @ 1.前言 之前我使用在桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫情数据实时监控平台(开源小项目).既然Qt是跨平台的,正好手里有一块iMX287A的开发套件,含一块4.3寸的显示屏,那么能不能在嵌入式平台实现一下呢? 最后实现的效果: 2.数据接口的获取 疫情监控平台的实现,简单的说,就是数据的展示,而数据从哪里来呢?现在很多互联网公司都做了自己的疫情监控平台,我这里…
http://my.oschina.net/alphajay/blog/33725 1.Gcov是进行代码运行的覆盖率统计的工具,它随着gcc的发布一起发布的,它的使用也很简单,需要在编译和链接的时候加上-fprofile-arcs -ftest-coverage生成二进制文件,gcov主要使用.gcno和.gcda两个文件,.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息..gcda是由加了-fprofile-arcs编译参数的编译后的文件运…
1.Gcov是进行代码运行的覆盖率统计的工具.它随着gcc的公布一起公布的,它的使用也非常easy,须要在编译和链接的时候加上-fprofile-arcs -ftest-coverage生成二进制文件,gcov主要使用.gcno和.gcda两个文件..gcno是由-ftest-coverage产生的.它包括了重建基本块图和对应的块的源代码的行号的信息. .gcda是由加了-fprofile-arcs编译參数的编译后的文件运行所产生的.它包括了弧跳变的次数和其它的概要信息.gcda文件的生成须要先…
简介 MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 年底开始开发.2002 年,魏永明先生创建北京飞漫软件技术有限公司,为 MiniGUI 提供商业技术支持,同时也继续提供开源版本,飞漫软件是中国地区为开源社区贡献代码最多的软件企业.最后一个采用 GPL 授权的 MiniGUI 版本是 1.6.10,从 MiniGUI 2.0.4 开始 MiniG…
  1.GCOV查看arm-linux代码覆盖率 一.           关于gcov工具 gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数生成二进制程序,执行测试用例生成代码覆盖率信息.1.如何使用gcov 用GCC编译的时候加上-fprofile-arcs -ftest-coverage选项,链接的时候也加上.fprofile-arcs参数使gcc创建一个程序的流图,之后找到适合图的生成树.只有不在生成树中的弧被操纵(instrum…