Тестирование кода
Всем доброго дня! Хочу автоматизировать проверку программ на языке С++. Допустим есть 20 файлов .cpp (полученных от учеников:) ) выполняющих одно и то же, но написанных совершенно в разном стиле и т.п. Можно ли написать программу, которая будет тестировать на заданных тестах, некоторый исходник? Представим, что есть код:
#include <iostream>
#include <cmath>
int main()
{
int a, b;
cin >> a >> b;
if(b == 0)
{
cout << "ERROR";
return 1;
}
cout << log(a) << endl;
cout << a / b;
return 0;
}
Для него есть текстовый файл с тестами:
1 2
0 0 //<- результат
2 5
0.30102 0.4
0 4
ERROR //т.е. программа должна вывести сообщение об ошибке
3 0
ERROR
Запустив проверку программы на выходе будем иметь что-то вроде этого:
Test #1
OK
Test #2
OK
Test #3
Fail
Test #4
OK
Собственно проблема в том, что нет идей как это сделать. Буду благодарен за любую помощь!
Источник: Stack Overflow на русском