单元测试中的动态打桩函数替换库(windows xp)

时间:2014-02-01 06:03:44
【文件属性】:

文件名称:单元测试中的动态打桩函数替换库(windows xp)

文件大小:2KB

文件格式:ZIP

更新时间:2014-02-01 06:03:44

动态打桩 单元测试 UT 打桩

在单元测试中经常需要动态的替换被测函数调用的其他函数,这个替换叫做打桩,现在很少有动态打桩的函数,研究了许久,写了这个功能,做成了lib库,在cygwin下生成的。 给出了一个Demo,使用makefile试一试吧! ps:我目前只在windowsxp下应用,其他平台未知!欢迎发邮件给我。 #include "stdio.h" #include "d_stub.h" void testfunc(int arg, int a, int b, int c) { printf("\tI am testFunc %d\n", arg); } void testfunc1(int arg, int a, int b, int c) { printf("\t******************\n\tI am stub function\n"); printf("\tArguments: %d %d %d %d\n\t******************\n", arg, a, b, c); } void testfunc2(int arg, int a, int b, int c) { printf("\tHello world\n"); } main() { stubInfo si, ss; printf("call original func:\n"); testfunc(1, 2, 3, 4); setStub(testfunc, testfunc1, &si); setStub(testfunc1, testfunc2, &ss); printf("after set stub for func1 and func2:\n"); testfunc(1, 2, 3, 4); cleanStub(&ss); /*recover testfunc1*/ printf("after clear stub for func2:\n"); testfunc(1, 2, 3, 4); cleanStub(&si); /*recover testfunc*/ printf("after clear stub for func1::\n"); testfunc(1, 2, 3, 4); }


【文件预览】:
demo
----libstub.a(2KB)
----d_stub.h(1KB)
----makefile(266B)
----test.c(866B)

网友评论

  • 非常好,原理足够了
  • 挺好的,只可惜不是linux下的,而且也没有公开源码,美中不足啊
  • 蛮好用的。
  • 可惜自能在windows xp下使用,最好有linux版的。
  • 是啊。我刚好在CYGWIN中可以用。
  • 杯具,想确认一下setStub,结果是个.a~
  • undefined reference to `setStub' 库里面没实现定义吧
  • 可惜自能在windows xp下使用,最好有linux版的。