try
{
_timer.reset();
+ assert(frame);
+ assert(frame->runner());
+ assert(run->test_fn);
return_code= frame->runner()->main(run->test_fn, frame->creators_ptr());
}
// Special case where check for the testing of the exception
}
catch (const libtest::fatal& e)
{
- stream::cerr(e.file(), e.line(), e.func()) << e.what();
_failed++;
formatter()->failed();
+ stream::make_cerr err(e.file(), e.line(), e.func());
+ err << e.what();
+ for (auto server : _frame->servers().servers)
+ {
+ auto output = server->output();
+ if (output.first.size())
+ {
+ err << "Server stdout:\n" << output.first << "\n";
+ }
+ if (output.second.size())
+ {
+ err << "Server stderr:\n" << output.second << "\n";
+ }
+ }
throw;
}
case TEST_FAILURE:
_failed++;
formatter()->failed();
+ for (auto server : _frame->servers().servers)
+ {
+ auto output = server->output();
+ if (output.first.size())
+ {
+ Out << "Server stdout:\n" << output.first << "\n";
+ }
+ if (output.second.size())
+ {
+ Out << "Server stderr:\n" << output.second << "\n";
+ }
+ }
break;
case TEST_SKIPPED: