X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fcollection.cc;h=040dd8b4690ec1c4574454c948b9e9c8c6bd5465;hb=b220134a312e2a488810abfef510f5dbf59078a4;hp=86e7f864a922c4034cf29f32b1495d660be9bcd0;hpb=743e893ecbbaacd66d2832e9c3ae16404422a173;p=awesomized%2Flibmemcached diff --git a/libtest/collection.cc b/libtest/collection.cc index 86e7f864..040dd8b4 100644 --- a/libtest/collection.cc +++ b/libtest/collection.cc @@ -51,6 +51,9 @@ static test_return_t runner_code(libtest::Framework* frame, 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 @@ -135,9 +138,22 @@ test_return_t Collection::exec() } 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; } @@ -151,6 +167,18 @@ test_return_t Collection::exec() 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: