Gmock утечет память на «неинтересные вызовы функций», так как обновлениеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Gmock утечет память на «неинтересные вызовы функций», так как обновление

Сообщение Anonymous »

С момента обновления структуры GTEST от 1.8.x до 1.12.x было несколько тестов, в которых сообщалось о утечках памяти в конце теста. < /p>
Я лишил все Сложность наших настройки к примеру ниже и проверила его на старой структуре и новой. Этот образец не показывает утечки памяти в старом, теперь он. Похоже, это вызвано функциональным вызовом, сделанным на макете, для которого нет явного ожидания. br /> Макет в нашем исходном коде была статической vared_ptr, но делая его членом класса или переменной стека в тесте, не исправляйте проблему. < /p>
Совместное распределение, по-видимому, является экземпляром Underdered_map внутри 'uninterestingCallReactionMap ()' in gmock-spec-builders.cc < /p>
using namespace testing;

class IFoo
{
public:

IFoo() = default;
virtual ~IFoo() = default;

virtual bool closeLink(void) = 0;
};

class MockFoo : public IFoo
{
public:
MOCK_METHOD0(closeLink, bool());
};

class MemLeakReproTest : public Test
{
};

TEST_F(MemLeakReproTest, TestStuff)
{
MockFoo mockFoo;

//EXPECT_CALL(mockFoo, closeLink()).Times(1).WillOnce(Return(true));
mockFoo.closeLink();
}

< /code>
Изменить: добавлено в ответ на вопрос о том, как мы обнаруживаем утечки. Запуск в Windows).
Наша настройка в основной правильной? < /p>
{
// Enable leak checking on exit
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
// Write CRT warnings to stderr
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);

wchar_t filename[MAX_PATH] = {};
wcscpy_s(filename, *wargv);
wcscat_s(filename, L".memleaks");

hLogFile = CreateFile(filename, GENERIC_WRITE,
FILE_SHARE_READ, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);

_CrtSetReportHook(reportHook);

_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);

testing::InitGoogleTest(&argc, argv);
int result = RUN_ALL_TESTS();

LocalFree(wargv);

return result;
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... nce-update
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»