Здравствуйте, bkat, Вы писали:
B>Первое что приходит в голову — это следующее.
B>Unit test может генерить тестовый файл (cpp?) и запускать компиляцию файла.
B>Затем можно проверять, что компиляция прошла с ожидаемой тобой ошибкой компиляции.
Генерить по cpp на каждый отдельный тест, запускать на компиляцию, парсить вывод компилятора и смотреть, были ли там ошибки/предупреждения? А что, вполне рабочая схема нарисоваться может. Тем более, что парсить там можно простыми рег. выражениями.
B>Тестовые файлы, которые не должны компилироваться,
B>можно вообще подготовить заранее и расматривать их
B>просто как входные данные для твоих тестов.
Ну да, можно. Только много их получится очень, лучше генерить автоматически. Написать
TEST_COMPILE_ERROR(
CVerySmartPtr p = &l;
)
TEST_COMPILE_WARNING(
CVerySmartPtr p = new Obj;
)
И по каждому из макросов сгеренить cpp, закомпилировать, отловить...