51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 4641|回复: 5
打印 上一主题 下一主题

cppunit_tear down/setup使用问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-3-29 16:20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为啥在tear downfree函数时,测试结果会是error,详细信息为tearDown() failed- uncaught exception of unknown type

void httpserver::setUp()
{
        char *original=(char *)malloc(100);
        memset(original,0,100);
}

void httpserver::tearDown()
{
        free(original);
        original=NULL;
}
难道不可兼容c的函数的代码编译又没有出错,为啥呀

[ 本帖最后由 lesley 于 2006-3-29 16:24 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-3-29 19:52:20 | 只看该作者
就楼主留的代码来看,估计编译也会有问题的吧。original是个局部变量。出了setup函数就不起作用了。也就是说在setup函数中,会有内存泄露,而在teardown函数中会不认识original。不过你编译没出错,检查一下是不是整个程序中还有original的同名变量。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-3-30 10:43:00 | 只看该作者
是因为这个原因吗??
class httpserver: public CppUnit::TestFixture
{
       
        CPPUNIT_TEST_SUITE( httpserver );        
        CPPUNIT_TEST( ATest);        
        CPPUNIT_TEST_SUITE_END();
       
protected:
                char *original;
                char *tmp;
                char *terminal;
public:

       
        void setUp ();
         
        void tearDown();         
       
        void ATest();
};
是这样申明的 那如果要声请一个动态内存 不在setup里那setup不是初始化吗 ,不可以这样用吗?请版主指教
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-3-30 11:36:59 | 只看该作者
void httpserver::setUp()
{
        char *original=(char *)malloc(100);
        memset(original,0,100);
}

这里重新声明了char *original
这个originalf现在是局部变量。
你把char *删掉就可以了,变成:

void httpserver::setUp()
{
        original=(char *)malloc(100);
        memset(original,0,100);
}
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-3-30 20:02:20 | 只看该作者
VisualUnit已经指出问题了,相信你已经改过了,现在应该没有问题了吧?你在setup中给局部变量original分配了空间,在teardown中释放的是类的成员变量original的空间,但是由于你没有给类的成员变量original分配空间,所以释放的时候就出了你看见的那个错误。

[ 本帖最后由 zixuxuwu 于 2006-3-30 20:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-3-31 17:11:31 | 只看该作者
太感谢了!基础不好 还在学习中,谢谢版主和viusal unit
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-4 20:11 , Processed in 0.068808 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表