首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
googletest 测试宏
2024-10-29
googletest基本测试宏
还不知道googletest基本使用方法的请参看前一篇blog 使用googletest进行C++单元测试 本篇仍然使用testStack测试文件进行测试,测试代码如下 #include <gtest/gtest.h> #include "MyStack.h" #include <iostream> TEST(StackTest, testPop) { //StackTest是testcase名,testPop为具体的test MyStack st; st.p
IPv6地址测试宏
GoogleTest初探(0)
单元测试是一种保证代码质量的手段.程序员可以通过写单元测试来保证自己写的代码的功能正确. 本人所在公司使用GoogleTest测试框架来进行单元测试.虽然现在在公司的工程代码中写单元测试已经驾轻就熟,但是只是知其然不知其所以然,所以再此对Google Test测试框架进行一个全面的了解与学习. 本文只涉及Google Test的使用,不涉及对其源码的学习与解读. Linux环境搭建Google Test测试环境 Google Test托管在github上,先通过git把Google Test拉取
GoogleTest环境配置以及应用
1 GoogleTest源码编译: GoogleTest代码仓库URL: https://github.com/google/googletest.git 下载源代码: git clone --branch release-1.12.1 https://github.com/google/googletest.git googletest 1.1 Windows下GoogleTest的编译方法(包含example): 这里选择的编译器是Visual Studio 16 2019,需要用别的版本的
Linux文件管理
虚拟文件系统(VFS)概述: VFS位于文件系统.和访问文件的系统调用(API)之间,为系统调用访问文件系统提供统一的抽象接口. 不同文件系统连接成一个单一树形结构,分别挂载(自己挂载需要用mount命令)在VFS上,采用POSIX系统调用读写不同的文件系统--使得不同文件系统之间进行数据交换和同时管理非常地方便.文件系统用mount命令挂载举例: cdrom在Linux中的挂载:mount -t iso9660 /dev/cdrom/mnt/cdrom.nfs的挂载:mount -t nfs
Linux进程学习
进程与进程管理: 清屏:system("clear"); //#include <signal.h> 进程环境与进程属性: 什么是进程:简单的说,进程就是程序的一次执行过程. 进程的状态:进程基本三态:运行态.就绪态.封锁态(等待态)--状态可在一定的条件下变化.(其中处于等待的进程分为:可中断进程可以被信号中断其等待:不可中断进程在任何情况下都不可被中断,一直等待条件的满足).僵死进程:子进程先于父进程退出:从子进程终止到父进程调用wait()之前的时间段内,子进程被称为
GTest Google的一种白盒单元测试框架 开源项目
GTest为google开源的白盒单元测试跨平台测试框架,含丰富的断言.类型参数化测试.死亡测试.以及其他的测试选项设置.文件保存等,以下将对该项目C++的实现进行简要的分析,作为学习记录备份. 基本上内部使用了大量的宏.模板,因此在分析源码时跟踪会比较麻烦,这也是有的开发项目团队不推荐使用宏.模板等,但即使如此,宏与模板的强大功能仍然是学习和开发紧凑的源码的有力武器,此外GTest也使用了C++语言和VC编译器的某些特性(类的静态成员.全局变量的初始化)(令人有点儿XXX的感觉). 在分析源码
Linux文件和目录
access() //检查是否调用进程有Access这个文件的权限,如果文件是一个符号链接,会将它解引用,成功返回0,失败返回-1设errno #include <unistd.h> int access(const char *pathname, int mode); /*mode(Bitwise Or) : F_OK //文件是否存在 R_OK //文件是否存在且授予了该进程读权限 W_OK //文件是否存在且授予了该进程写权限 X_OK //文件是否存在且授予了该进程执行权限 */ if
splice()函数,'SPLICE_F_MOVE' 'SPLICE_F_NONBLOCK' 'SPLICE_F_MORE' undeclared
1.编译含有splice()函数的程序时出现,'SPLICE_F_MOVE' undeclared,'SPLICE_F_NONBLOCK' ‘SPLICE_F_MORE' 也是一样undeclared! 2.使用man splice查看,发现要定义宏_GNU_SOURCE #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <fcntl.h> ssize_t splice(int fd_in, loff_t *off_i
iOS: 实现微信支付
一.介绍: 现在的消费越来越方便,直接带个手机用各种三方的支付平台进行支付就行,例如微信.支付宝.现在正好我所做的项目中用到了微信支付,今天就来整理一下. 二.准备: 1.去微信官方开发者平台注册开发者账号:https://open.weixin.qq.com 2.然后登陆开发平台: 3.给项目对应的Bundle ID创建应用程序(默认有登陆和分享功能,当然需要花300块钱申请支付功能,一般公司会购买,完成这些操作就是等待审核了,一般一到两个星期就搞定了) 4.审核通过,可以看到如下显示:会生成
《C标准库》—之<assert.h>实现
首先,贴出标准库中<assert.h>的实现源码: #undef assert #ifdef NDEBUG #define assert(test)((void)0) #else void _Assert(char*); #define _STR(x) _VAL(x) #define _VAL(x) #x #define assert(test)((test)?(void)0:_Assert(__FILE__":"_STR(__LINE)""#test)
C基础 那些年用过的奇巧淫技
引言 - 为寻一颗明星 为要寻一颗明星 徐志摩 1924年12月1日<晨报六周年纪念增刊> 我骑著一匹拐腿的瞎马, 向著黑夜里加鞭:—— 向著黑夜里加鞭, 我跨著一匹拐腿的瞎马.// 我冲入这黑绵绵的昏夜, 为要寻一颗明星:—— 为要寻一颗明星, 我冲入这黑茫茫的荒野.// 累坏了,累坏了我胯下的牲口, 那明星还不出现:—— 那明星还不出现, 累坏了,累坏了马鞍上的身手.// 这回天上透出了水晶似的光明, 荒野里倒著一只牲口, 黑夜里躺著一具尸首.—— 这回天上透出了水晶似的光明!// { 风
Linux基础 30分钟GDB调试快速突破
引言 Linus心灵鸡汤 在*nix开发中有道卡叫gdb调试,不管你怎么搞. 它依然在那丝毫不会松动.今天致敬一个 活着的传奇 Linus Torvalds Unix 始于上个世纪60年代,在70年代得到了迅猛的发展, 这时候的李纳斯还躺在祖父公寓的摇篮里睡大觉,如果不是后来 Unix 王国自乱阵脚, 出现阵营分裂和法律纠纷,可能 Linux 系统根本都不会出现.真实的情况是, Unix 浪费了大把的时间和机会,似乎就是为了等待这个大鼻子.头发纷乱的芬兰小子长大,然后一决高下. 李纳斯赢得了自己
C 简单处理excel 转成 json
引言 工作中常需要处理excel转json问题. 希望这篇博文能简单描述这个问题.并提供一种解决思路.提升感悟. 今天我们处理的事就是为了把 xlsm => json. 一种方式是. 去 google 在 stackover上搜 c readxlsm/readxls 库. 也可以解决. 但是跨平台需要配置. 这里介绍一种有意思的方式. 来处理read. 首先我们的目标文件是 生成的最后内容希望是 前言 这里会扯一点C能够处理xlsm, 但是这些高级文件格式还是上层语言处理的爽一点. C去处理真的
C 实现一个跨平台的定时器 论述
引言 今天我们要讲述和构建的是一个跨平台多线程C的定时器对象,粒度是毫秒级别.可以称之为简易的timer, sctimer.h 库. 首先看总的接口,看门见客. sctimer.h #ifndef _H_SCTIMER #define _H_SCTIMER #include <schead.h> /* * 简单的定时器代码.跨平台,线程安全 *关键是使用简单. *例如 * 1. 启动一次,不要求多线程, 1s后执行 * st_add(1, 1, 0, timer, arg, 0) * 2. 启
对云风 cstring 第二次解析
前言 从明天起 关心粮食和蔬菜 我有一所房子 面朝大海 春暖花开 本文前提条件 1.了解 posix 线程 2.了解 原子操作 3.具备简单C基础,或者 你也敲一遍. 如果上面不太清楚,你可以翻看我以前的博客,或者'百度'搜索. 结论 1.云风前辈的 玩具 cstring 有点坑, 内存管理很随意(也可能时我菜,理解不了他飘逸的写法) 2.对于江湖中成名已久的 高手, 其实 胜在 思路上. 3.前辈3-4h搞完的,重构了1周, 发现 const char* 和 char* 够用了,真的,越简单越
ZStack之ZDApp_Init解析
[注:本文源自博客园http://www.cnblogs.com/cherishui/,为尊重劳动者成果,如需转载请保留此行] 以下代码分析基于ZStack-CC2530-2.5.1a,开发环境为 IAR Embedded Workbench for 8051 IDE,版本号为8.30.2. ZDApp_Init在系统初始化时被调用,主要用来建立网络,注册系统消息和ZDO消息. 地址相关函数名称 功能 NLME_GetExtAddr 返回设备IEEE 64位地址的指针 NLME_GetS
消息队列接口API(posix 接口和 system v接口)
消息队列 posix API 消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点.信号这种通信方式更像\"即时\"的通信方式,它要求接受信号的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念(process-persistent):管道及有名管道则是典型的随进程持续IPC,并且,只能传送无格式的字节流无疑会给应用程序开发带来不便,另外,它的缓冲区大小也受到限制消息队列就是一个消息的链表.可以把消
Windows消息大全
最近在写TabControl的用户控件,需要用到sendMessage,已做备份. 引用:http://bbs.aau.cn/forum.php?mod=viewthread&tid=7776&extra=&page=1 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.例如,对于单击鼠标所产
Windows窗口消息大全(转)
Windows窗口消息大全,全不全自己看 ////////////////////////////////////////////////////////////////////////// #include "AFXPRIV.H"//消息值的定义来源 #include "Dde.h"//DDE消息值的定义来源 #include "CPL.H"//控制面板消息值的定义来源 #include "WFEXT.H"//文件管理器的消
热门专题
oracle NAVICAT设置字段默认值
eclipse svn 搭建ssm环境
layui中get请求
python打印log日志以及怎么使用
vue 点击按钮 出现下拉列表
windows安装open-install
ffmpeg查看被修改痕迹
arcgis删除自相交图斑
angularcli 控制输入数据范围
c# byte改变图片大小
vue一个input三级地址联调
windows安装opendaylight
scala实现pagerank
苹果cloudkit里是什么
C# Excel 事件
SQL text有长度限制吗
gambit打开dbs文件
matlab坐标变换矩阵 平面
.net core ef动态添加表
ps -p命令 TIME