LCOV - code coverage report
Current view: top level - opt/homebrew/include/boost/test/detail - throw_exception.hpp (source / functions) Hit Total Coverage
Test: test_dash_coverage.info Lines: 0 1 0.0 %
Date: 2026-06-25 07:23:51 Functions: 0 19 0.0 %

          Line data    Source code
       1             : //  (C) Copyright Gennadiy Rozental 2001.
       2             : //  Distributed under the Boost Software License, Version 1.0.
       3             : //  (See accompanying file LICENSE_1_0.txt or copy at
       4             : //  http://www.boost.org/LICENSE_1_0.txt)
       5             : 
       6             : //  See http://www.boost.org/libs/test for the library home page.
       7             : //
       8             : //!@file
       9             : //!@brief contains wrappers, which allows to build Boost.Test with no exception
      10             : // ***************************************************************************
      11             : 
      12             : #ifndef BOOST_TEST_DETAIL_THROW_EXCEPTION_HPP
      13             : #define BOOST_TEST_DETAIL_THROW_EXCEPTION_HPP
      14             : 
      15             : // Boost
      16             : #include <boost/config.hpp> // BOOST_NO_EXCEPTIONS
      17             : 
      18             : #ifdef BOOST_NO_EXCEPTIONS
      19             : // C RUNTIME
      20             : #include <stdlib.h>
      21             : 
      22             : #endif
      23             : 
      24             : #include <boost/test/detail/suppress_warnings.hpp>
      25             : 
      26             : //____________________________________________________________________________//
      27             : 
      28             : namespace boost {
      29             : namespace unit_test {
      30             : namespace ut_detail {
      31             : 
      32             : #ifdef BOOST_NO_EXCEPTIONS
      33             : 
      34             : template<typename E>
      35             : BOOST_NORETURN inline void
      36             : throw_exception(E const& /*e*/) { abort(); }
      37             : 
      38             : #define BOOST_TEST_I_TRY
      39             : #define BOOST_TEST_I_CATCH( T, var ) for(T const& var = *(T*)0; false;)
      40             : #define BOOST_TEST_I_CATCH0( T ) if(0)
      41             : #define BOOST_TEST_I_CATCHALL() if(0)
      42             : #define BOOST_TEST_I_RETHROW
      43             : 
      44             : #else
      45             : 
      46             : template<typename E>
      47             : BOOST_NORETURN inline void
      48           0 : throw_exception(E const& e) { throw e; }
      49             : 
      50             : #define BOOST_TEST_I_TRY try
      51             : #define BOOST_TEST_I_CATCH( T, var ) catch( T const& var )
      52             : #define BOOST_TEST_I_CATCH0( T ) catch( T const& )
      53             : #define BOOST_TEST_I_CATCHALL() catch(...)
      54             : #define BOOST_TEST_I_RETHROW throw
      55             : #endif
      56             : 
      57             : //____________________________________________________________________________//
      58             : 
      59             : #define BOOST_TEST_I_THROW( E ) unit_test::ut_detail::throw_exception( E )
      60             : #define BOOST_TEST_I_ASSRT( cond, ex ) if( cond ) {} else BOOST_TEST_I_THROW( ex )
      61             : 
      62             : 
      63             : } // namespace ut_detail
      64             : } // namespace unit_test
      65             : } // namespace boost
      66             : 
      67             : //____________________________________________________________________________//
      68             : 
      69             : #include <boost/test/detail/enable_warnings.hpp>
      70             : 
      71             : #endif // BOOST_TEST_DETAIL_THROW_EXCEPTION_HPP

Generated by: LCOV version 1.16