Gmock泄漏内存
GMock leaking memory
代码
class A {
public:
void doit() {...}
}
class B {
public:
explicit B(unique_ptr<A> a): a_(move(a)) {}
void run() {
a_->doit();
}
private:
unique_ptr<A> a_;
}
测试代码
class MockA : public A {
public:
MOCK_METHOD0(doit, void(void));
}
TEST(BTest, Test) {
auto mockA = std::make_unique<A>();
EXPECT_CALL(*mockA, doit(_)).Times(1);
B b(std::move(mockA));
b.run();
}
运行此代码时,它会泄漏
错误:应删除此模拟对象(在test btest.test中使用(,但永远不要。它的地址是 @0x1234。
由于应该在破坏期间运行期望,所以我不确定为什么会引起问题。
我尝试了此处所述的共享_ptr别名方法 - 使用unique_ptr的依赖项注入以模拟,但即使我仍然得到例外。
class A
需要具有虚拟驱动器,否则class MockA
的破坏者未执行。
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 尽管遵循了规则,内存泄漏在哪里
- 为什么调用堆栈数组会导致内存泄漏
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么以下C++代码中存在内存泄漏?
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 为什么此函数会导致内存泄漏?
- 在 C++ 库中使用cythonized python时内存泄漏
- 需要帮助查找内存泄漏
- 瓦尔格林德的内存泄漏使用新的
- 无法找出我的代码中的内存泄漏
- C++ 结构内部的unordered_map会导致内存泄漏问题吗?
- 可视化 使用 VS Code 查找C++应用程序中的内存泄漏
- Shared_ptr双链接列表内存泄漏
- C++ 在类中使用常量引用文本时 O2 内存泄漏