From ee556bc3dde512cf5f5a2ab02b101729f1cd496f Mon Sep 17 00:00:00 2001 From: Krzysztof Jackiewicz Date: Tue, 21 Jun 2016 13:33:17 +0200 Subject: [PATCH] YACA: Check openssl errors even if test passes Change-Id: Ib1efae6d2edc3a37ed2813ae8774cd66b0522a2f --- src/yaca/yaca-test-common.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/yaca/yaca-test-common.h b/src/yaca/yaca-test-common.h index a78b4b8..9ba8b20 100644 --- a/src/yaca/yaca-test-common.h +++ b/src/yaca/yaca-test-common.h @@ -49,10 +49,21 @@ do { assertMsg << err; \ clear_openssl_errors(); \ } \ - DPL::Test::TestFailed e(#test, \ + DPL::Test::TestFailed e(#test, __FILE__, __LINE__, assertMsg.str()); \ + if (!std::uncaught_exception()) \ + throw e; \ + DPL::Test::TestRunnerSingleton::Instance().addFailReason(e.GetMessage()); \ + } else if (!get_openssl_errors().empty()) { \ + std::ostringstream failMsg; \ + failMsg << DPL::gdbbacktrace(); \ + failMsg << std::endl << "OPENSSL ERRORS:" << std::endl; \ + for (auto &err : get_openssl_errors()) \ + failMsg << err; \ + clear_openssl_errors(); \ + DPL::Test::TestFailed e("Unhandled OpenSSL error", \ __FILE__, \ __LINE__, \ - assertMsg.str()); \ + failMsg.str()); \ if (!std::uncaught_exception()) \ throw e; \ DPL::Test::TestRunnerSingleton::Instance().addFailReason(e.GetMessage()); \ -- 2.7.4