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