mirror of
https://github.com/catchorg/Catch2.git
synced 2025-06-07 07:51:00 +00:00
Add support for -fno-exceptions (or equivalent)
This means * Adding new configuration toggle `CATCH_CONFIG_DISABLE_EXCEPTIONS` and a best-guess configuration auto-checking for it. * Adding new set of internal macros, `CATCH_TRY`, `CATCH_CATCH_ALL` and `CATCH_CATCH_ANON` that can be used in place of regular `try`, `catch(...)` and `catch(T const&)` respectively, while disappearing when `CATCH_CONFIG_DISABLE_EXCEPTIONS` is enabled. * Replacing all uses of `throw` with calls to `Catch::throw_exception` customization point. * Providing a default implementation for the above customization point when `CATCH_CONFIG_DISABLE_EXCEPTIONS` is set. * Letting users override this implementation with their own. * Some minor changes and ifdefs all around to support the above
This commit is contained in:
parent
86da2846af
commit
8b01883854
12 changed files with 102 additions and 23 deletions
|
@ -81,8 +81,13 @@ namespace Catch {
|
|||
// (To go back to the test and change execution, jump over the throw, next)
|
||||
CATCH_BREAK_INTO_DEBUGGER();
|
||||
}
|
||||
if( m_reaction.shouldThrow )
|
||||
if (m_reaction.shouldThrow) {
|
||||
#if !defined(CATCH_CONFIG_DISABLE_EXCEPTIONS)
|
||||
throw Catch::TestFailureException();
|
||||
#else
|
||||
CATCH_ERROR( "Test failure requires aborting test!" );
|
||||
#endif
|
||||
}
|
||||
}
|
||||
void AssertionHandler::setCompleted() {
|
||||
m_completed = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue