测试用例,OOC-GCC新的测试用例[0.6]

这个例子主要用来掩饰如何实现继承关系[v0.6]
http://code.google.com/p/ooc-gcc/downloads/list
// #include "inc/core/OOStd.h" #include "inc/JObject/JType/JType.h" CLASS_EX(JType,Mom){ int age; int gender; CLASS_ST(JType,Mom) iFn sayHi; }; int Mom_sayHi(Mom * THIS){ printf("Hi,Mom age:%d gender:%s\n",THIS->age,THIS->gender?"male":"female"); return 0; } int Mom_reload(Mom * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); THIS->age=36; THIS->gender=0; return 0; } int Mom_unload(Mom * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); return 0; } int Mom_reloadStatic(StaticMom * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); THIS->sayHi=(void *)Mom_sayHi; return 0; } int Mom_unloadStatic(StaticMom * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); THIS->sayHi=NULL; return 0; } ASM(JType,Mom,Mom_reload,Mom_unload,Mom_reloadStatic,Mom_unloadStatic) CLASS_EX(Mom,Kid){ int id; CLASS_ST(Mom,Kid) }; int Kid_sayHi(Kid * THIS){ printf("Hi,Kid%d age:%d gender:%s\n",THIS->id,THIS->age,THIS->gender?"male":"female"); return 0; } int Kid_reload(Kid * THIS,void *PARAM){ static int id=0; printf("%s %p\n",__func__,THIS); THIS->age=3; THIS->gender=1; THIS->id=++id; return 0; } int Kid_unload(Kid * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); return 0; } int Kid_reloadStatic(StaticKid * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); THIS->sayHi=(void *)Kid_sayHi; return 0; } int Kid_unloadStatic(StaticKid * THIS,void *PARAM){ printf("%s %p\n",__func__,THIS); THIS->sayHi=NULL; return 0; } ASM(Mom,Kid,Kid_reload,Kid_unload,Kid_reloadStatic,Kid_unloadStatic) int main(){ printf("\n-----------\n"); Mom * m=newMom(NULL); printf("\n-----------\n"); StaticMom *stm=ST(Mom,m); Kid *k1=newKid(NULL); printf("\n-----------\n"); Kid *k2=newKid(NULL); printf("\n-----------\n"); Kid *k3=newKid(NULL); printf("\n-----------\n"); stm->sayHi(m); printf("\n-----------\n"); StaticKid *stk=ST(Kid,k1); stk->sayHi(k1); printf("\n-----------\n"); stk->sayHi(k2); printf("\n-----------\n"); stk->sayHi(k3); printf("\n-----------\n"); delKid(&k1,NULL); printf("\n-----------\n"); delKid(&k2,NULL); printf("\n-----------\n"); delKid(&k3,NULL); printf("\n-----------\n"); delMom(&m,NULL); printf("\n-----------\n"); return 0; }
正确的输出为,
----------- Mom_reloadStatic 003E2BF0 Mom_reload 003E2BD0 ----------- Mom_reload 003E2C18 Mom_reloadStatic 003E2C40 Kid_reloadStatic 003E2C40 Kid_reload 003E2C18 ----------- Mom_reload 003E2C80 Kid_reload 003E2C80 ----------- Mom_reload 003E2CA8 Kid_reload 003E2CA8 ----------- Hi,Mom age:36 gender:female ----------- Hi,Kid1 age:3 gender:male ----------- Hi,Kid2 age:3 gender:male ----------- Hi,Kid3 age:3 gender:male ----------- Kid_unload 003E2C18 Mom_unload 003E2C18 ----------- Kid_unload 003E2C80 Mom_unload 003E2C80 ----------- Kid_unload 003E2CA8 Kid_unloadStatic 003E2C40 Mom_unloadStatic 003E2C40 Mom_unload 003E2CA8 ----------- Mom_unload 003E2BD0 Mom_unloadStatic 003E2BF0 ----------- Time Elapsed Seconds : 0 Microseconds : 0
另外内存分配检测Log输出为
[,][;] +,0x003E2BD0,20; +,0x003E4CF0,8; +,0x003E2BF0,32; +,0x003E2C18,28; +,0x003E2C40,52; +,0x003E2C80,28; +,0x003E2CA8,28; -,0x003E2C18; -,0x003E2C80; -,0x003E2C40; -,0x003E2CA8; -,0x003E2BF0; -,0x003E4CF0; -,0x003E2BD0; !,0;
最后的0表示分配的都释放了,而前面的数据可以配合graphviz来实现一些图表
Tags:  测试用例设计方法 测试用例设计 测试用例模板 软件测试用例 测试用例

延伸阅读

最新评论

发表评论