Chris@16: // (C) Copyright Gennadiy Rozental 2001-2008. Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: // See http://www.boost.org/libs/test for the library home page. Chris@16: // Chris@16: // File : $RCSfile$ Chris@16: // Chris@101: // Version : $Revision$ Chris@16: // Chris@16: // Description : defines class unit_test_result that is responsible for Chris@16: // gathering test results and presenting this information to end-user Chris@16: // *************************************************************************** Chris@16: Chris@16: #ifndef BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER Chris@16: #define BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER Chris@16: Chris@16: // Boost.Test Chris@16: #include Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: #include Chris@16: Chris@16: //____________________________________________________________________________// Chris@16: Chris@16: namespace boost { Chris@16: Chris@16: namespace unit_test { Chris@16: Chris@16: // ************************************************************************** // Chris@16: // ************** first failed assertion debugger hook ************** // Chris@16: // ************************************************************************** // Chris@16: Chris@16: namespace { Chris@16: inline void first_failed_assertion() {} Chris@16: } Chris@16: Chris@16: // ************************************************************************** // Chris@16: // ************** test_results ************** // Chris@16: // ************************************************************************** // Chris@16: Chris@16: class BOOST_TEST_DECL test_results { Chris@16: public: Chris@16: test_results(); Chris@16: Chris@16: typedef BOOST_READONLY_PROPERTY( counter_t, (results_collector_t)(test_results)(results_collect_helper) ) counter_prop; Chris@16: typedef BOOST_READONLY_PROPERTY( bool, (results_collector_t)(test_results)(results_collect_helper) ) bool_prop; Chris@16: Chris@16: counter_prop p_assertions_passed; Chris@16: counter_prop p_assertions_failed; Chris@16: counter_prop p_expected_failures; Chris@16: counter_prop p_test_cases_passed; Chris@16: counter_prop p_test_cases_failed; Chris@16: counter_prop p_test_cases_skipped; Chris@16: counter_prop p_test_cases_aborted; Chris@16: bool_prop p_aborted; Chris@16: bool_prop p_skipped; Chris@16: Chris@16: // "conclusion" methods Chris@16: bool passed() const; Chris@16: int result_code() const; Chris@16: Chris@16: // collection helper Chris@16: void operator+=( test_results const& ); Chris@16: Chris@16: void clear(); Chris@16: }; Chris@16: Chris@16: // ************************************************************************** // Chris@16: // ************** results_collector ************** // Chris@16: // ************************************************************************** // Chris@16: Chris@16: class BOOST_TEST_DECL results_collector_t : public test_observer, public singleton { Chris@16: public: Chris@16: // test_observer interface implementation Chris@16: void test_start( counter_t test_cases_amount ); Chris@16: void test_finish(); Chris@16: void test_aborted(); Chris@16: Chris@16: void test_unit_start( test_unit const& ); Chris@16: void test_unit_finish( test_unit const&, unsigned long elapsed ); Chris@16: void test_unit_skipped( test_unit const& ); Chris@16: void test_unit_aborted( test_unit const& ); Chris@16: Chris@16: void assertion_result( bool passed ); Chris@16: void exception_caught( execution_exception const& ); Chris@16: Chris@16: // results access Chris@16: test_results const& results( test_unit_id ) const; Chris@16: Chris@16: private: Chris@16: BOOST_TEST_SINGLETON_CONS( results_collector_t ); Chris@16: }; Chris@16: Chris@16: BOOST_TEST_SINGLETON_INST( results_collector ) Chris@16: Chris@16: } // namespace unit_test Chris@16: Chris@16: } // namespace boost Chris@16: Chris@16: //____________________________________________________________________________// Chris@16: Chris@16: #include Chris@16: Chris@16: #endif // BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER Chris@16: