| 12345678910111213141516171819202122232425262728293031 |
- #pragma once
- #include "unity.h"
- #define CXX_UNITY_TYPE_TO_STR(x) #x
- /**
- * Very simple helper macro to catch exceptions.
- *
- * @note
- * * If there is any exception which not a child of std::exception, it will terminate the program!
- * * If there is no exception, it will jump from the current frame without de-initializing
- * destructors!
- */
- #define TEST_THROW(expr_, exception_) \
- do { \
- bool caught = false; \
- bool caught_different = false; \
- try { \
- expr_; \
- } catch ( exception_ &e) { \
- caught = true; \
- } catch ( std::exception &e) { \
- caught_different = true; \
- } \
- TEST_ASSERT_FALSE_MESSAGE(caught_different, "ERROR: Expected " CXX_UNITY_TYPE_TO_STR(exception_) \
- ", but caught different exception."); \
- TEST_ASSERT_TRUE_MESSAGE(caught, "ERROR: Expected " CXX_UNITY_TYPE_TO_STR(exception_) \
- ", but no exception thrown."); \
- } \
- while (0)
|