c语言实现一个单元测试框架(Unit Test Framework)代码

本文介绍了一个C语言实现的单元测试框架,该框架来源于作者的开源项目spider-tool在Google Code上。通过test_engine.h和test_engine.c两个文件,详细阐述了如何构建和使用这个框架。
摘要由CSDN通过智能技术生成


csdn lidp  转载注明出处

此单元测试框架为我在google code上的开源项目spider-tool的一部分,

关于spider-tool,欢迎访问google code. 

https://spider-tool.googlecode.com


test_engine.h

/*
 * Spider -- An open source C language toolkit.
 *
 * Copyright (C) 2011 , Inc.
 *
 * lidp <openser@yeah.net>
 *
 * This program is free software, distributed under the terms of
 * the GNU General Public License Version 2. See the LICENSE file
 * at the top of the source tree.
 */

/*! 
  * \brief  Unit Test Framework
  *
  */

#ifndef _TEST_ENGINE_H
#define _TEST_ENGINE_H

#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif

#define SPD_TEST_FRAMEWORK

#ifdef SPD_TEST_FRAMEWORK
#define SPD_TEST_INIT(name) static enum spd_test_result name(struct spd_test_record *record, enum spd_test_cmd type, struct spd_test *test)
#define SPD_TEST_REGISTER(name) spd_test_register(name)
#define SPD_TEST_UNREGISTER(name) spd_test_unregister(name)
#define SPD_TEST_REPORT(name, category,file) spd_test_report(name, category,file)
#define SPD_TEST_RUN(name, category) spd_test_run(name, category)
#else 
#define SPD_TEST_INIT(name)
#define SPD_TEST_REGISTER(name)
#define SPD_TEST_UNREGISTER(name)
#define SPD_TEST_REPORT(name, category,file)
#define SPD_TEST_RUN(name, category)
#endif

enum spd_test_result {
	TEST_RESULT_NOT_RUN,
	TEST_RESULT_PASS,
	TEST_RESULT_FAILED,
};

enum spd_test_cmd {
	SPD_TEST_CMD_INIT,
	SPD_TEST_CMD_RUN,
};

struct spd_test_record {
	const char *name; /* unique name of this  test */
	const char *category; /*  test in this category can be run */
	const char *description; /*  a description of test  */
};

struct spd_test;

typedef enum spd_test_result (spd_test_cb_t)(struct spd_test_record *record, enum spd_test_cmd type, struct spd_test* test);

/* register a test record */
int spd_test_register(spd_test_cb_t *cb);

/* unresigster a test record  */
int spd_test_unregister(spd_test_cb_t *cb);


/* 
  * run test framework  in three mode :
  * name : r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值