| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef UNITTEST_EXECUTE_TEST_H
- #define UNITTEST_EXECUTE_TEST_H
- #include "TestDetails.h"
- #include "MemoryOutStream.h"
- #include "AssertException.h"
- #include "CurrentTest.h"
- #ifdef UNITTEST_POSIX
- #include "Posix/SignalTranslator.h"
- #endif
- namespace UnitTest {
- template< typename T >
- void ExecuteTest(T& testObject, TestDetails const& details)
- {
- CurrentTest::Details() = &details;
- try
- {
- #ifdef UNITTEST_POSIX
- UNITTEST_THROW_SIGNALS
- #endif
- testObject.RunImpl();
- }
- catch (AssertException const& e)
- {
- CurrentTest::Results()->OnTestFailure(
- TestDetails(details.testName, details.suiteName, e.Filename(), e.LineNumber()), e.what());
- }
- catch (std::exception const& e)
- {
- MemoryOutStream stream;
- stream << "Unhandled exception: " << e.what();
- CurrentTest::Results()->OnTestFailure(details, stream.GetText());
- }
- catch (...)
- {
- CurrentTest::Results()->OnTestFailure(details, "Unhandled exception: Crash!");
- }
- }
- }
- #endif
|