Тестируем выделение динамической памяти

1 тыс. подписчиков

12+
12+

29 просмотров

5 дней назад

ПожаловатьсяНарушение авторских прав

1 тыс. подписчиков

12+
12+

29 просмотров

5 дней назад

ПожаловатьсяНарушение авторских прав
12+
12+

29 просмотров

5 дней назад

Лезем под капот к старому доброму языку C. Вот у нас TDD (Test Driven Development) или даже BDD (Behavior Driven Development) - и мы хотим покрыть unit-тестами чувствительные точки программы. Значит, рано или поздно нам придётся тестировать выделение динамической памяти. Но как это сделать?! Вариантов, оказывается, очень много. И самые интересные построены вокруг тонкостей работы статического и динамического линковщиков. Смотрим под "микроскопом", пытаемся, ошибаемся, снова пытаемся и добиваемся невероятных результатов. Был malloc() - и нет его! А теперь снова есть! Всё как мы хотели. 00:00 Хотим эмулировать ошибки выделения динамической памяти 13:06 Где можно подменить malloc: компилятор, линкер и библиотека 28:45 Подменяем реализацию и символы на этапе линковки 48:33 Переходим к динамической линковке и подмене при запуске 01:03:15 Подменяем malloc через LD_PRELOAD 01:16:12 Переключаемся между настоящим и подменным malloc через dlsym 01:30:33 Собираем управляемую эмуляцию malloc fail для юнит-тестов

Название:

Тестируем выделение динамической памяти