123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- // (C) Copyright Gennadiy Rozental 2005-2008.
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- // See http://www.boost.org/libs/test for the library home page.
- //
- // File : $RCSfile$
- //
- // Version : $Revision: 54633 $
- //
- // Description : defines framework interface
- // ***************************************************************************
- #ifndef BOOST_TEST_FRAMEWORK_HPP_020805GER
- #define BOOST_TEST_FRAMEWORK_HPP_020805GER
- // Boost.Test
- #include <boost/test/detail/global_typedef.hpp>
- #include <boost/test/detail/fwd_decl.hpp>
- #include <boost/test/utils/trivial_singleton.hpp>
- #include <boost/test/detail/suppress_warnings.hpp>
- // STL
- #include <stdexcept>
- //____________________________________________________________________________//
- namespace boost {
- namespace unit_test {
- // ************************************************************************** //
- // ************** init_unit_test_func ************** //
- // ************************************************************************** //
- #ifdef BOOST_TEST_ALTERNATIVE_INIT_API
- typedef bool (*init_unit_test_func)();
- #else
- typedef test_suite* (*init_unit_test_func)( int, char* [] );
- #endif
- // ************************************************************************** //
- // ************** framework ************** //
- // ************************************************************************** //
- namespace framework {
- // initialization
- BOOST_TEST_DECL void init( init_unit_test_func init_func, int argc, char* argv[] );
- BOOST_TEST_DECL bool is_initialized();
- // mutation access methods
- BOOST_TEST_DECL void register_test_unit( test_case* tc );
- BOOST_TEST_DECL void register_test_unit( test_suite* ts );
- BOOST_TEST_DECL void deregister_test_unit( test_unit* tu );
- BOOST_TEST_DECL void clear();
- BOOST_TEST_DECL void register_observer( test_observer& );
- BOOST_TEST_DECL void deregister_observer( test_observer& );
- BOOST_TEST_DECL void reset_observers();
- BOOST_TEST_DECL master_test_suite_t& master_test_suite();
- // constant access methods
- BOOST_TEST_DECL test_case const& current_test_case();
- BOOST_TEST_DECL test_unit& get( test_unit_id, test_unit_type );
- template<typename UnitType>
- UnitType& get( test_unit_id id )
- {
- return static_cast<UnitType&>( get( id, static_cast<test_unit_type>(UnitType::type) ) );
- }
- // test initiation
- BOOST_TEST_DECL void run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
- BOOST_TEST_DECL void run( test_unit const*, bool continue_test = true );
- // public test events dispatchers
- BOOST_TEST_DECL void assertion_result( bool passed );
- BOOST_TEST_DECL void exception_caught( execution_exception const& );
- BOOST_TEST_DECL void test_unit_aborted( test_unit const& );
- // ************************************************************************** //
- // ************** framework errors ************** //
- // ************************************************************************** //
- struct internal_error : std::runtime_error {
- internal_error( const_string m ) : std::runtime_error( std::string( m.begin(), m.size() ) ) {}
- };
- struct setup_error : std::runtime_error {
- setup_error( const_string m ) : std::runtime_error( std::string( m.begin(), m.size() ) ) {}
- };
- #define BOOST_TEST_SETUP_ASSERT( cond, msg ) if( cond ) {} else throw unit_test::framework::setup_error( msg )
- struct nothing_to_test {}; // not really an error
- } // namespace framework
- } // unit_test
- } // namespace boost
- //____________________________________________________________________________//
- #include <boost/test/detail/enable_warnings.hpp>
- #endif // BOOST_TEST_FRAMEWORK_HPP_020805GER
|