使用带有升压指针的GMock进行单元测试时会出现分段错误

时间:2017-11-17 05:59:28

标签: c++ unit-testing pointers boost googlemock

我在为我的课程添加单元测试时遇到了问题。其中一个函数使用了一个boost指针(动态池),每当我从回溯中看到编译测试时,总会发生一个分段错误。如果正常运行,它会正确编译,但在使用Google Mock时会失败。

模拟:: AllowLeak似乎也不适合我。不幸的是,我无法在公共场合分享代码,所以如果有人经历过使用Google Mock增强指针的测试功能,请随时分享一些提示。

谢谢

要测试的功能:

RetObj* Foo::FooFunction(uint32_t param1)
{
  spRetObj_t ptr = pool_storage->Get<RetObj>(); //error occurs when I use this
  ...
  return ptr;
}

spRetObj_t初始化:

typedef stdex::IPool<RetObj>::iptr spRetObj_t;

池存储:

#include "stdex/dynamic_pool.hpp"
...
class PoolStorage
{
...
    template<typename T>
        typename stdex::IPool<T>::iptr Get(void (T::*on_free)(void) = 0);
...
}

引发异常的代码in boost:

T * operator->() const
{
    BOOST_ASSERT( px != 0 );
    return px;
}

0 个答案:

没有答案