From 5ddcdd9682490d1033cf2ef212b18aa837fc099a Mon Sep 17 00:00:00 2001 From: Patrick Johnmeyer Date: Sat, 16 Feb 2013 23:56:20 -0600 Subject: [PATCH] Add .what() to error message when standard exception is raised in CHECK_EQUAL. --- src/CheckMacros.h | 7 +++++++ src/tests/TestExceptions.cpp | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/CheckMacros.h b/src/CheckMacros.h index a8c125c..c8e6e34 100644 --- a/src/CheckMacros.h +++ b/src/CheckMacros.h @@ -61,6 +61,13 @@ ({ \ UnitTest::CheckEqual(*UnitTest::CurrentTest::Results(), expected, actual, UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__)); \ }) \ + UT_CATCH (std::exception, e, \ + { \ + UnitTest::MemoryOutStream message; \ + message << "Unhandled exception (" << e.what() << ") in CHECK_EQUAL(" #expected ", " #actual ")"; \ + UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ + message.GetText()); \ + }) \ UT_CATCH_ALL \ ({ \ UnitTest::CurrentTest::Results()->OnTestFailure(UnitTest::TestDetails(*UnitTest::CurrentTest::Details(), __LINE__), \ diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp index b5b7339..d8e1c6f 100644 --- a/src/tests/TestExceptions.cpp +++ b/src/tests/TestExceptions.cpp @@ -100,6 +100,18 @@ TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents) CHECK(strstr(reporter.lastFailedMessage, "123")); } +TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat) +{ + RecordingReporter reporter; + { + UnitTest::TestResults testResults(&reporter); + ScopedCurrentTest scopedResults(testResults); + CHECK_EQUAL(ThrowingFunction(), 123); + } + + CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)")); +} + TEST(CheckCloseFailsOnException) { bool failure = false;