Тестовая инфраструктура
DCR имеет встроенный минималистичный фреймворк для тестирования на C/C++.
Макросы
EXPECT(expr, ...)
Проверяет, что выражение истинно.
EXPECT(1 + 1 == 2);
EXPECT(ptr != NULL, "ptr should not be NULL");
SKIP(...)
Пропускает тест с опциональным сообщением.
SKIP("not implemented on Windows yet");
TEST(name)
Определяет тест.
TEST(addition) {
EXPECT(1 + 1 == 2);
EXPECT(2 + 2 == 4);
}
TEST_CASE(name, ...)
Определяет параметризованный тест (макрос, принимающий список аргументов).
TEST_CASE(math, a, b) {
EXPECT(a + b == b + a);
}
Инициализация
dcr test --init
Создаются файлы:
tests/dcr_test.h— заголовочный файл фреймворкаtests/test.c— шаблон с примером теста
Структура tests/
tests/
├── dcr_test.h # фреймворк (не редактировать)
├── test.c # основные тесты
└── ... # дополнительные .c файлы с тестами
Все .c/.cpp файлы в tests/ автоматически собираются в тестовый бинарник.