lua 调用c函数进行单元测试
时间:2010-08-06 来源:emmoblin
1)lua测试命令行,优势明显
2)cunit对函数进行单元测试的功能,用lua也可以做到。而且参数可以通过lua传递,更加灵活,修改测试用例不需要重新编译。
以前用cunit写的时候,修改一下就要重新编译,而且还要继续内存的管理。测试用例写多了有点厌烦。
下面主要看看Lua调用c函数进行单元测试:
这是lua代码,
local iptable = {}
--组织输入参数
for num = 1,5 do
--调用被测试的c函数
qostest.qos_add_e(iptable)
--检测返回结果是否是预期结果,这里只是简单的打印了一下,没有用assert
for num = 1,5 do |
下面是对应的c函数的实现:
其中最容易出错的地方就是对于当前栈的层次,要时刻记住每一个lua_* 相关的操作后,栈会变成什么样子。
建议全部使用正数代表index,混合使用正数和负数比较容易出错。
static int qos_add_e (lua_State *L) {
//传入ip,返回上下行的handle
testfunc(ip, handle)
//return handle to lua |