(二)cmockery中run_tests.c分析
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmockery.h>
// A test case that does nothing and succeeds.
void null_test_success(void **state) {
}
int main(int argc, char* argv[]) {
const UnitTest tests[] = {
unit_test(null_test_success),
};
return run_tests(tests);
}
// 函数原型用于setup, test and teardown functions.
typedef void (*UnitTestFunction)(void **state);
// 单元测试函数的类型
typedef enum UnitTestFunctionType {
UNIT_TEST_FUNCTION_TYPE_TEST = 0,
UNIT_TEST_FUNCTION_TYPE_SETUP,
UNIT_TEST_FUNCTION_TYPE_TEARDOWN,
} UnitTestFunctionType;
/*
* 存储一个单元测试函数包括其函数名和类型
* 注意:每设置一个函数必须有一个teardown函数对应,可以指定一个NULL函数指针
*/
typedef struct UnitTest {
const char* name;
UnitTestFunction function;
UnitTestFunctionType function_type;
} UnitTest;
// 初始化一个单元测试结构体.
#define unit_test(f) { #f, f, UNIT_TEST_FUNCTION_TYPE_TEST }
/*
* 运行通过UnitTest结构体数组指定的测试,下面的样例
* 以unit_test宏来描述了这个宏的用法
*
* void Test0();
* void Test1();
*
* int main(int argc, char* argv[]) {
* const UnitTest tests[] = {
* unit_test(Test0);
* unit_test(Test1);
* };
* return run_tests(tests);
* }
*/
run_tests(tests) _run_tests(tests, sizeof(tests) / sizeof(tests)[0])
转载于:https://www.cnblogs.com/cfzhang/p/612f2868819ea56d10da291fbea1c4ae.html
(二)cmockery中run_tests.c分析相关推荐
- linux内核中链表代码分析---list.h头文件分析(二)【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637598.html linux内核中链表代码分析---list.h头文件分析(二) 16年2月28日16 ...
- 数据分析中的分组分析法(二)
我们在上面的内容中为大家解释了数据分析中的分组分析方法,我们根据属性指标分组分析法和数量指标分组分析法的定义给大家进行了详细的说明.但是对于数量指标分组分析法没有给大家详细地说明,今天我们给大家好好讲 ...
- 论电子计算机在审计中的应用,计算机技术在审计中的应用领域分析.doc
计算机技术在审计中的应用领域分析.doc 计算机技术在审计中的应用 [ ]审计工作作为我WW民经济屮的重要的一个环节,由于有大量的数据需耍处理, 使得计算机技术在审计领域的大规模推广具有很强的实践意义 ...
- 20169205 2016-2017-2 实验二nmap的使用与分析
20169205 2016-2017-2 实验二Nmap的使用与分析 实验所用知识总结 Nmap扫描基础 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以 ...
- Android10.0 日志系统分析(二)-logd、logcat架构分析及日志系统初始化-[Android取经之路]
摘要:本节主要来讲解Android10.0 日志系统的架构分析,以及logd.logcat的初始化操作 阅读本文大约需要花费15分钟. 文章首发微信公众号:IngresGe 专注于Android系统级 ...
- Linux内核网络数据包发送(二)——UDP协议层分析
Linux内核网络数据包发送(二)--UDP协议层分析 1. 前言 2. `udp_sendmsg` 2.1 UDP corking 2.2 获取目的 IP 地址和端口 2.3 Socket 发送:b ...
- 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )
文章目录 前言 一.DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 二./bin/dexopt 源码分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ...
- C 语言中的内存分析
C 语言中的内存分析 一.进制 我们需要了解的4中进制:二进制.八进制.十进制.十六进制 #include <stdio.h> int main() { //默认情况下是十进制 intnu ...
- qtabwidget切换tab事件_某超超临界机组初压/限压切换过程中扰动原因分析
严寒夕 浙江浙能台州第二发电有限责任公司 [摘要]某火电厂汽轮机在初压/限压切换过程中出现负荷瞬时上升问题.从初压/限压切换的逻辑及切换过程中主要参数的变化分析,确定原因为压力控制器指令上升瞬间和转 ...
- 深入理解Java中的逃逸分析
转载自 深入理解Java中的逃逸分析 在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件.第二段编译 ...
最新文章
- 【124】排球基本技术
- redis python zset
- windows10 mysql 5.5.36 安装
- 人工智能会被赋予人性么?
- excel三维地图数据源引用无效_Excel函数公式应用的基础,数据源的引用,动图解释...
- Reactive(2) 响应式流与制奶厂业务
- Script - MapSubString()使用
- 剑指Offer之不用加减乘除做加法
- SQL Server 2014新特性探秘(1):内存数据库
- can't find '__main__' module in '.'
- java使用RunTime调用windows命令行
- 笔记本vmware利用无线网卡上网设置
- 什么样的女人才是老婆(感动)
- OpenCV_03 Numpy库和Mat
- 软件测试之测试主流技能
- 数据的加载 - 清洗处理 - 分组分类 - 存储
- vivado生成mig_Xilinx-在Zynq上用MIG扩展内存(2)-Vivado篇
- SQL Server2000挂起 cd-key
- 关于Authorware的一些吐槽
- php抓包视频教程,POSTGET抓包及php数据请求提交教程