Здравствуйте, koenjihyakkei, Вы писали:
K>Файл исходника — автогенеренные юнит тесты
Если можно автогенерённые тесты оформить в виде параметрических тестов, — то, наверное, следует это сделать.
В зависимости от фреймворка, конкретная техника может отличаться.
Но, в конце концов, хотя бы так
void run() {
for(i : ......) {
Test t;
if(i & 1) { ..... }
if(i & 2) { ..... }
if(i & 4) { ..... }
}
}
или так
void run_one(Test&& t) {
t.f1();
t.f2();
.....
}
void run() {
run_one( Test(1) );
run_one( Test(2) );
run_one( Test(3) );
.....
}
В любом случае, нужно разбить одну большую функцию на подфункции, потому что иначе там со стеком бог знает что творится. Конечно, гусь пытается рассовать временные переменные по регистрам и слотам стекового кадра, и тратит на это кучу сил.