// Custom checkers void CheckEqual(TestResults& results, const wchar_t* expected, const wchar_t* actual, TestDetails const& details) { using namespace std; if (wcscmp(expected, actual)) { UnitTest::MemoryOutStream stream; stream << "Expected '" << expected << "' but was '" << actual << "'"; results.OnTestFailure(details, stream.GetText()); } }
void Test::Run(TestResults& testResults) const { try { #ifdef UNITTEST_POSIX UNITTEST_THROW_SIGNALS #endif RunImpl(testResults); } catch (AssertException const& e) { testResults.OnTestFailure( TestDetails(m_details.testName, m_details.suiteName, e.Filename(), e.LineNumber()), e.what()); } catch (std::exception const& e) { MemoryOutStream stream; stream << "Unhandled exception: " << e.what(); testResults.OnTestFailure(m_details, stream.GetText()); } catch (...) { testResults.OnTestFailure(m_details, "Unhandled exception: Crash!"); } }