Всего несколько дней назад я начал изучать фреймворк модульного тестирования, который называется check,
и я собираюсь запустить тест на c-коде под Linux.
Теперь проверьте, и какой-то хорошо разработанный код и некоторый тестовый код могут помочь мне проверить
что основной функционал правильный,
Я имею в виду, что довольно легко просто посмотреть на переменные и ответ, а затем
решить, является ли функция правильной или нет.
Но скажем, я хочу протестировать динамическую структуру памяти с большим количеством свободных от malloc и
и оказывается, что я могу вставить данные и снова получить правильные данные.
Но это не доказывает, что я не сломал память в процессе,
скажем, я забыл освободить половину памяти и потерял указатели (классический memleak).
Этот код, вероятно, пройдет большую часть модульного тестирования.
Итак, теперь вопрос:
это хорошая идея запустить весь код модульного теста с т. е. Valgrind и позволить ему
обнаружить какие-либо проблемы с malloc / free? (Или, может быть, скомпилировать что-то вроде Electric Fence?)
Это похоже на хорошую идею, но я не уверен, к чему я клоню ... ..... 1009 *
Спасибо
Johan
Обновление: Спасибо Дугласу и Джонатану,
похоже, это хорошая идея, и я должен продолжить: -)
Обновление: Valgrind - забавный инструмент, но я обнаружил первые утечки памяти, которые сделали это
был в тестовой среде, а не в моем собственном коде (довольно забавно, хотя).
Итак, совет остальным - убедиться, что используемая вами среда модульного тестирования не протекает, прежде чем перевернуть свой собственный код вверх дном.
Пустой тестовый кейс был все, что было нужно в моем случае,
с тех пор работает только модуль модульного тестирования.