$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74663 - in trunk/boost/test: . detail impl included interaction output tools tree utils
From: gennadiy.rozental_at_[hidden]
Date: 2011-10-03 02:59:48
Author: rogeeff
Date: 2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
New Revision: 74663
URL: http://svn.boost.org/trac/boost/changeset/74663
Log:
Removed unit_test_framework namespace
test_being_aborted moved into framework namespace
New decorators: enable_if/disable_if to facilitate change status at construction time
Further work on restructuring unit_test_suite_impl split into multiple new headers under boost/test/tree/decorator.hpp
Added:
   trunk/boost/test/impl/decorator.ipp
      - copied, changed from r74640, /trunk/boost/test/impl/decorators.ipp
   trunk/boost/test/tree/decorator.hpp
      - copied, changed from r74640, /trunk/boost/test/tree/decorators.hpp
Removed:
   trunk/boost/test/impl/decorators.ipp
   trunk/boost/test/impl/test_main.ipp
   trunk/boost/test/tree/decorators.hpp
   trunk/boost/test/unit_test_suite_impl.hpp
Binary files modified: 
   trunk/boost/test/tools/impl.hpp
Text files modified: 
   trunk/boost/test/debug.hpp                           |     2                                         
   trunk/boost/test/detail/global_typedef.hpp           |     4                                         
   trunk/boost/test/detail/unit_test_parameters.hpp     |     6 -                                       
   trunk/boost/test/detail/workaround.hpp               |     6 -                                       
   trunk/boost/test/execution_monitor.hpp               |     6 +                                       
   trunk/boost/test/framework.hpp                       |    19 +++--                                   
   trunk/boost/test/impl/compiler_log_formatter.ipp     |    10 --                                      
   trunk/boost/test/impl/cpp_main.ipp                   |     2                                         
   trunk/boost/test/impl/debug.ipp                      |     6 -                                       
   trunk/boost/test/impl/exception_safety.ipp           |     3                                         
   trunk/boost/test/impl/execution_monitor.ipp          |    55 ++++++++-------                         
   trunk/boost/test/impl/framework.ipp                  |   138 ++++++++++++++++++++++++--------------- 
   trunk/boost/test/impl/interaction_based.ipp          |     4 -                                       
   trunk/boost/test/impl/logged_expectations.ipp        |     3                                         
   trunk/boost/test/impl/plain_report_formatter.ipp     |    10 --                                      
   trunk/boost/test/impl/progress_monitor.ipp           |     9 +-                                      
   trunk/boost/test/impl/results_collector.ipp          |    10 +-                                      
   trunk/boost/test/impl/results_reporter.ipp           |    11 +--                                     
   trunk/boost/test/impl/test_tools.ipp                 |     6 -                                       
   trunk/boost/test/impl/unit_test_log.ipp              |     5 -                                       
   trunk/boost/test/impl/unit_test_main.ipp             |     7 +                                       
   trunk/boost/test/impl/unit_test_monitor.ipp          |     7 -                                       
   trunk/boost/test/impl/unit_test_parameters.ipp       |     5 -                                       
   trunk/boost/test/impl/unit_test_suite.ipp            |    31 ++++++--                                
   trunk/boost/test/impl/xml_log_formatter.ipp          |    15 ++--                                    
   trunk/boost/test/impl/xml_report_formatter.ipp       |     8 --                                      
   trunk/boost/test/included/unit_test.hpp              |     2                                         
   trunk/boost/test/interaction/exception_safety.hpp    |     2                                         
   trunk/boost/test/interaction/logged_expectations.hpp |     2                                         
   trunk/boost/test/interaction/mock_object.hpp         |     6 +                                       
   trunk/boost/test/minimal.hpp                         |     1                                         
   trunk/boost/test/output/compiler_log_formatter.hpp   |     6 -                                       
   trunk/boost/test/output/plain_report_formatter.hpp   |     6 -                                       
   trunk/boost/test/output/xml_log_formatter.hpp        |     6 -                                       
   trunk/boost/test/output/xml_report_formatter.hpp     |     6 -                                       
   trunk/boost/test/parameterized_test.hpp              |     4 -                                       
   trunk/boost/test/progress_monitor.hpp                |     2                                         
   trunk/boost/test/results_collector.hpp               |     4 -                                       
   trunk/boost/test/results_reporter.hpp                |     6 -                                       
   trunk/boost/test/tools/floating_point_comparison.hpp |     9 -                                       
   trunk/boost/test/tools/output_test_stream.hpp        |     4 -                                       
   trunk/boost/test/tools/predicate_result.hpp          |     4 -                                       
   trunk/boost/test/tools/prod_tools.hpp                |     6 -                                       
   trunk/boost/test/tree/observer.hpp                   |     6 -                                       
   trunk/boost/test/unit_test_log.hpp                   |     2                                         
   trunk/boost/test/unit_test_log_formatter.hpp         |     2                                         
   trunk/boost/test/unit_test_monitor.hpp               |     4 -                                       
   trunk/boost/test/unit_test_suite.hpp                 |     3                                         
   trunk/boost/test/utils/algorithm.hpp                 |     3                                         
   trunk/boost/test/utils/assign_op.hpp                 |     2                                         
   trunk/boost/test/utils/class_properties.hpp          |     4 -                                       
   trunk/boost/test/utils/custom_manip.hpp              |     4 -                                       
   trunk/boost/test/utils/fixed_mapping.hpp             |     4 -                                       
   trunk/boost/test/utils/foreach.hpp                   |     6 -                                       
   trunk/boost/test/utils/lazy_ostream.hpp              |    14 +--                                     
   trunk/boost/test/utils/named_params.hpp              |     2                                         
   trunk/boost/test/utils/rtti.hpp                      |     2                                         
   trunk/boost/test/utils/setcolor.hpp                  |     4 -                                       
   trunk/boost/test/utils/trivial_singleton.hpp         |     7 +                                       
   trunk/boost/test/utils/wrap_stringstream.hpp         |     2                                         
   trunk/boost/test/utils/xml_printer.hpp               |     4 -                                       
   61 files changed, 209 insertions(+), 330 deletions(-)
Modified: trunk/boost/test/debug.hpp
==============================================================================
--- trunk/boost/test/debug.hpp	(original)
+++ trunk/boost/test/debug.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -30,7 +30,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace debug {
 
 // ************************************************************************** //
@@ -95,7 +94,6 @@
 void BOOST_TEST_DECL break_memory_alloc( long mem_alloc_order_num );
 
 } // namespace debug
-
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>
Modified: trunk/boost/test/detail/global_typedef.hpp
==============================================================================
--- trunk/boost/test/detail/global_typedef.hpp	(original)
+++ trunk/boost/test/detail/global_typedef.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -16,6 +16,8 @@
 #define BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
 
 #include <boost/test/utils/basic_cstring/basic_cstring.hpp>
+#include <boost/test/detail/workaround.hpp>
+
 #define BOOST_TEST_L( s )         boost::unit_test::const_string( s, sizeof( s ) - 1 )
 #define BOOST_TEST_STRINGIZE( s ) BOOST_TEST_L( BOOST_STRINGIZE( s ) )
 #define BOOST_TEST_EMPTY_STRING   BOOST_TEST_L( "" )
@@ -32,7 +34,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 typedef unsigned long   counter_t;
@@ -85,7 +86,6 @@
 } // namespace ut_detail
 
 } // namespace unit_test
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/detail/unit_test_parameters.hpp
==============================================================================
--- trunk/boost/test/detail/unit_test_parameters.hpp	(original)
+++ trunk/boost/test/detail/unit_test_parameters.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -27,15 +27,13 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
+namespace runtime_config {
 
 // ************************************************************************** //
 // **************                 runtime_config               ************** //
 // ************************************************************************** //
 
-namespace runtime_config {
-
 BOOST_TEST_DECL void                    init( int& argc, char** argv );
 
 BOOST_TEST_DECL unit_test::log_level    log_level();
@@ -60,9 +58,7 @@
 BOOST_TEST_DECL int                     random_seed();
 
 } // namespace runtime_config
-
 } // namespace unit_test
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/detail/workaround.hpp
==============================================================================
--- trunk/boost/test/detail/workaround.hpp	(original)
+++ trunk/boost/test/detail/workaround.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -26,9 +26,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace ut_detail {
 
 #ifdef BOOST_NO_STD_DISTANCE
@@ -51,11 +49,7 @@
 template <class T> inline void ignore_unused_variable_warning(const T&) {}
 
 } // namespace ut_detail
-
 } // namespace unit_test
-
-namespace unit_test_framework = unit_test;
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/execution_monitor.hpp
==============================================================================
--- trunk/boost/test/execution_monitor.hpp	(original)
+++ trunk/boost/test/execution_monitor.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -370,15 +370,17 @@
     BOOST_FPE_INV       = BOOST_FPE_ALL+1
 };
 
+//____________________________________________________________________________//
+
 // return the previous set of enabled exceptions when successful, and BOOST_FPE_INV otherwise
 unsigned BOOST_TEST_DECL enable( unsigned mask );
 unsigned BOOST_TEST_DECL disable( unsigned mask );
 
-} // namespace fpe
+//____________________________________________________________________________//
 
+} // namespace fpe
 }  // namespace boost
 
-//____________________________________________________________________________//
 
 #include <boost/test/detail/enable_warnings.hpp>
 
Modified: trunk/boost/test/framework.hpp
==============================================================================
--- trunk/boost/test/framework.hpp	(original)
+++ trunk/boost/test/framework.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -28,7 +28,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -112,26 +111,32 @@
 // **************                framework errors              ************** //
 // ************************************************************************** //
 
-struct internal_error : std::runtime_error {
+struct BOOST_TEST_DECL 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 {
+//____________________________________________________________________________//
+
+struct BOOST_TEST_DECL 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
+struct BOOST_TEST_DECL test_being_aborted {};
 
-} // unit_test
+//____________________________________________________________________________//
 
-} // namespace boost
+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
Modified: trunk/boost/test/impl/compiler_log_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/compiler_log_formatter.ipp	(original)
+++ trunk/boost/test/impl/compiler_log_formatter.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -16,12 +16,12 @@
 #define BOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
 
 // Boost.Test
-#include <boost/test/output/compiler_log_formatter.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/framework.hpp>
+#include <boost/test/tree/test_unit.hpp>
 #include <boost/test/utils/basic_cstring/io.hpp>
 #include <boost/test/utils/lazy_ostream.hpp>
 #include <boost/test/utils/setcolor.hpp>
+#include <boost/test/output/compiler_log_formatter.hpp>
 #include <boost/test/detail/unit_test_parameters.hpp>
 
 // Boost
@@ -35,9 +35,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 // ************************************************************************** //
@@ -269,13 +267,9 @@
 //____________________________________________________________________________//
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
Modified: trunk/boost/test/impl/cpp_main.ipp
==============================================================================
--- trunk/boost/test/impl/cpp_main.ipp	(original)
+++ trunk/boost/test/impl/cpp_main.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -131,8 +131,6 @@
 
 #endif // !BOOST_TEST_DYN_LINK && !BOOST_TEST_NO_MAIN
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_CPP_MAIN_IPP_012205GER
Modified: trunk/boost/test/impl/debug.ipp
==============================================================================
--- trunk/boost/test/impl/debug.ipp	(original)
+++ trunk/boost/test/impl/debug.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -113,7 +113,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace debug {
 
 using unit_test::const_string;
@@ -958,12 +957,11 @@
 #endif // BOOST_MS_CRT_BASED_DEBUG
 }
 
-} // namespace debug
+//____________________________________________________________________________//
 
+} // namespace debug
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_DEBUG_API_IPP_112006GER
Copied: trunk/boost/test/impl/decorator.ipp (from r74640, /trunk/boost/test/impl/decorators.ipp)
==============================================================================
Binary files. No diff available.
Deleted: trunk/boost/test/impl/decorators.ipp
==============================================================================
Binary file. No diff available.
Modified: trunk/boost/test/impl/exception_safety.ipp
==============================================================================
--- trunk/boost/test/impl/exception_safety.ipp	(original)
+++ trunk/boost/test/impl/exception_safety.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -525,11 +525,8 @@
 //____________________________________________________________________________//
 
 }  // namespace itest
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // non-ancient compiler
Modified: trunk/boost/test/impl/execution_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/execution_monitor.ipp	(original)
+++ trunk/boost/test/impl/execution_monitor.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -257,19 +257,19 @@
 
 struct fpe_except_guard {
     explicit fpe_except_guard( unsigned detect_fpe )
-	: m_detect_fpe( detect_fpe )
+    : m_detect_fpe( detect_fpe )
     {
         // prepare fp exceptions control
         m_previosly_enabled = fpe::disable( fpe::BOOST_FPE_ALL );
-		if( m_previosly_enabled != fpe::BOOST_FPE_INV && detect_fpe != fpe::BOOST_FPE_OFF )
+        if( m_previosly_enabled != fpe::BOOST_FPE_INV && detect_fpe != fpe::BOOST_FPE_OFF )
             fpe::enable( detect_fpe );
     }
     ~fpe_except_guard()
     {
         if( m_detect_fpe != fpe::BOOST_FPE_OFF )
             fpe::disable( m_detect_fpe );
-		if( m_previosly_enabled != fpe::BOOST_FPE_INV )
-			fpe::enable( m_previosly_enabled );
+        if( m_previosly_enabled != fpe::BOOST_FPE_INV )
+            fpe::enable( m_previosly_enabled );
     }
 
     unsigned m_detect_fpe;
@@ -1089,8 +1089,8 @@
 
     detail::system_signal_exception SSE( this );
     
-	int ret_val = 0;
-	
+    int ret_val = 0;
+    
     __try {
         __try {
             ret_val = detail::do_invoke( m_custom_translators, F );
@@ -1106,8 +1106,8 @@
            _set_invalid_parameter_handler( old_iph );
         }
     }
-	
-	return ret_val;
+    
+    return ret_val;
 }
 
 //____________________________________________________________________________//
@@ -1273,18 +1273,21 @@
 
 //____________________________________________________________________________//
 
-void
-execution_monitor::vexecute( boost::function<void ()> const& F )
-{
-    struct forward {
-        explicit    forward( boost::function<void ()> const& F ) : m_F( F ) {}
+namespace detail {
 
-        int         operator()() { m_F(); return 0; }
+struct forward {
+    explicit    forward( boost::function<void ()> const& F ) : m_F( F ) {}
 
-        boost::function<void ()> const& m_F;
-    };
+    int         operator()() { m_F(); return 0; }
 
-    execute( forward( F ) );
+    boost::function<void ()> const& m_F;
+};
+
+} // namespace detail
+void
+execution_monitor::vexecute( boost::function<void ()> const& F )
+{
+    execute( detail::forward( F ) );
 }
 
 // ************************************************************************** //
@@ -1343,18 +1346,18 @@
 #else
     unsigned old_cw;
     if( ::_controlfp_s( &old_cw, 0, 0 ) != 0 )
-		return BOOST_FPE_INV;
+        return BOOST_FPE_INV;
 
     // Set the control word
     if( ::_controlfp_s( 0, old_cw & ~mask, BOOST_FPE_ALL ) != 0 )
-		return BOOST_FPE_INV;
+        return BOOST_FPE_INV;
 #endif
 
-	return ~old_cw & BOOST_FPE_ALL;
+    return ~old_cw & BOOST_FPE_ALL;
 #elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
     ::feclearexcept(BOOST_FPE_ALL);
-	int res = ::feenableexcept( mask );
-	return res == -1 ? BOOST_FPE_INV : (unsigned)res;
+    int res = ::feenableexcept( mask );
+    return res == -1 ? BOOST_FPE_INV : (unsigned)res;
 #else
     /* Not Implemented  */
     return 0;
@@ -1378,18 +1381,18 @@
 #else
     unsigned old_cw;
     if( ::_controlfp_s( &old_cw, 0, 0 ) != 0 )
-		return BOOST_FPE_INV;
+        return BOOST_FPE_INV;
 
     // Set the control word
     if( ::_controlfp_s( 0, old_cw | mask, BOOST_FPE_ALL ) != 0 )
-		return BOOST_FPE_INV;
+        return BOOST_FPE_INV;
 #endif
 
     return ~old_cw & BOOST_FPE_ALL;
 #elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
     ::feclearexcept(BOOST_FPE_ALL);
-	int res = ::fedisableexcept( mask );
-	return res == -1 ? BOOST_FPE_INV : (unsigned)res;
+    int res = ::fedisableexcept( mask );
+    return res == -1 ? BOOST_FPE_INV : (unsigned)res;
 #else
     /* Not Implemented */
     return BOOST_FPE_INV;
Modified: trunk/boost/test/impl/framework.ipp
==============================================================================
--- trunk/boost/test/impl/framework.ipp	(original)
+++ trunk/boost/test/impl/framework.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -19,15 +19,19 @@
 #include <boost/test/framework.hpp>
 #include <boost/test/execution_monitor.hpp>
 #include <boost/test/debug.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/unit_test_log.hpp>
 #include <boost/test/unit_test_monitor.hpp>
-#include <boost/test/tree/observer.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/progress_monitor.hpp>
 #include <boost/test/results_reporter.hpp>
 #include <boost/test/test_tools.hpp>
 
+#include <boost/test/tree/observer.hpp>
+#include <boost/test/tree/test_unit.hpp>
+#include <boost/test/tree/visitor.hpp>
+#include <boost/test/tree/traverse.hpp>
+#include <boost/test/tree/test_case_counter.hpp>
+
 #if BOOST_TEST_SUPPORT_TOKEN_ITERATOR
 #include <boost/test/utils/iterator/token_iterator.hpp>
 #endif
@@ -56,7 +60,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -66,9 +69,7 @@
 namespace ut_detail {
 
 struct test_init_invoker {
-    explicit    test_init_invoker( init_unit_test_func init_func ) 
-    : m_init_func( init_func )
-    {}
+    explicit    test_init_invoker( init_unit_test_func init_func )  : m_init_func( init_func ) {}
     int         operator()()
     {
 #ifdef BOOST_TEST_ALTERNATIVE_INIT_API
@@ -229,7 +230,7 @@
 };
 
 // ************************************************************************** //
-// **************                change_status                 ************** //
+// **************                 change_status                ************** //
 // ************************************************************************** //
 
 class change_status : public test_tree_visitor {
@@ -244,44 +245,6 @@
     bool            m_new_status;
 };
 
-// ************************************************************************** //
-// **************               collect_disabled               ************** //
-// ************************************************************************** //
-
-class collect_disabled : public test_tree_visitor {
-public:
-    explicit        collect_disabled( tu_enable_list& tu_to_enable ) : m_tu_to_enable( tu_to_enable ) {}
-
-private:
-    // test_tree_visitor interface
-    virtual bool    visit( test_unit const& tu )
-    {
-        if( !tu.p_enabled )
-            m_tu_to_enable.push_back( std::make_pair( tu.p_id, false ) );
-
-        return true;
-    }
-
-    // Data members
-    tu_enable_list& m_tu_to_enable;
-};
-
-// ************************************************************************** //
-// **************               apply_decorators               ************** //
-// ************************************************************************** //
-
-class apply_decorators : public test_tree_visitor {
-private:
-    // test_tree_visitor interface
-    virtual bool    visit( test_unit const& tu )
-    {
-        if( tu.p_decorators.get() )
-            tu.p_decorators.get()->apply( const_cast<test_unit&>(tu) );
-
-        return true;
-    }
-};
-
 } // namespace ut_detail
 
 // ************************************************************************** //
@@ -360,7 +323,7 @@
         m_curr_test_case = bkup;
 
         if( unit_test_monitor.is_critical_error( run_result ) )
-            throw test_being_aborted();
+            throw framework::test_being_aborted();
     }
 
     bool            test_suite_start( test_suite const& ts )
@@ -477,11 +440,67 @@
         throw setup_error( ex.what() );
     }
 
-    ut_detail::apply_decorators ad;
+    // Apply all decorators to the auto test units
+    class apply_decorators : public test_tree_visitor {
+    private:
+        // test_tree_visitor interface
+        virtual bool    visit( test_unit const& tu )
+        {
+            if( tu.p_decorators.get() )
+                tu.p_decorators.get()->apply( const_cast<test_unit&>(tu) );
+
+            return true;
+        }
+    } ad;
     traverse_test_tree( master_test_suite().p_id, ad, true );
 
+    // Let's see if anything was disabled during construction. These test units and anything 
+    // that depends on them are removed from the test tree
+    class remove_disabled : public test_tree_visitor {
+    public:
+        // test_tree_visitor interface
+        virtual bool    visit( test_unit const& tu )
+        {
+            // check if any of dependencies are disabled
+            if( tu.p_enabled ) {
+                BOOST_TEST_FOREACH( test_unit_id, dep_id, tu.p_dependencies.get() ) {
+                    test_unit const& dep = framework::get( dep_id, tut_any );
+
+                    if( !dep.p_enabled ) {
+                        BOOST_TEST_MESSAGE( "Disable test " << tu.p_type_name << ' ' << tu.p_name << 
+                                            " since it depends on desabled test " << dep.p_type_name << ' ' << dep.p_name );
+
+                        tu.p_enabled.value = false;
+                        break;
+                    }
+                }
+            }
+
+            // if this test unit is disabled - remove it from the tree and disable all subunits
+            if( !tu.p_enabled && tu.p_id != master_test_suite().p_id ) {
+                if( tu.p_type == tut_suite ) {
+                    ut_detail::change_status disabler( false );
+                    traverse_test_tree( tu.p_id, disabler, true );
+                }
+
+                framework::get<test_suite>( tu.p_parent_id ).remove( tu.p_id );
+                m_made_changes = true;
+            }
+
+            return tu.p_enabled;
+        }
+        bool m_made_changes;
+    } rd;
+
+    do {
+        rd.m_made_changes = false;
+        traverse_test_tree( master_test_suite().p_id, rd, true );
+    } while( rd.m_made_changes );
+
+    // apply all name and label filters
     impl::apply_filters( master_test_suite().p_id );
 
+    // We are Done!
     s_frk_impl().m_is_initialized = true;
 }
 
@@ -553,7 +572,24 @@
 
             // 35. add all children to the list recursively
             if( data.second && tu.p_type == tut_suite ) {
-                ut_detail::collect_disabled V( tu_to_enable );
+                class collect_disabled : public test_tree_visitor {
+                public:
+                    explicit        collect_disabled( ut_detail::tu_enable_list& tu_to_enable ) : m_tu_to_enable( tu_to_enable ) {}
+
+                private:
+                    // test_tree_visitor interface
+                    virtual bool    visit( test_unit const& tu )
+                    {
+                        if( !tu.p_enabled )
+                            m_tu_to_enable.push_back( std::make_pair( tu.p_id, false ) );
+
+                        return true;
+                    }
+
+                    // Data members
+                    ut_detail::tu_enable_list& m_tu_to_enable;
+                } V( tu_to_enable );
+
                 traverse_test_tree( tu.p_id, V, true );
             }
         }
@@ -797,7 +833,7 @@
     try {
         traverse_test_tree( id, s_frk_impl() );
     }
-    catch( test_being_aborted const& ) {
+    catch( framework::test_being_aborted const& ) {
         // abort already reported
     }
 
@@ -847,13 +883,9 @@
 //____________________________________________________________________________//
 
 } // namespace framework
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_FRAMEWORK_IPP_021005GER
Modified: trunk/boost/test/impl/interaction_based.ipp
==============================================================================
--- trunk/boost/test/impl/interaction_based.ipp	(original)
+++ trunk/boost/test/impl/interaction_based.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -35,7 +35,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace itest { // interaction-based testing
 
 // ************************************************************************** //
@@ -77,11 +76,8 @@
 }
     
 }  // namespace itest
-
 }  // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // not ancient compiler
Modified: trunk/boost/test/impl/logged_expectations.ipp
==============================================================================
--- trunk/boost/test/impl/logged_expectations.ipp	(original)
+++ trunk/boost/test/impl/logged_expectations.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -234,11 +234,8 @@
 //____________________________________________________________________________//
 
 }  // namespace itest
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // not ancient compiler
Modified: trunk/boost/test/impl/plain_report_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/plain_report_formatter.ipp	(original)
+++ trunk/boost/test/impl/plain_report_formatter.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -19,10 +19,12 @@
 #include <boost/test/output/plain_report_formatter.hpp>
 #include <boost/test/utils/custom_manip.hpp>
 #include <boost/test/results_collector.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
+
+#include <boost/test/tree/test_unit.hpp>
 
 #include <boost/test/utils/basic_cstring/io.hpp>
 #include <boost/test/utils/setcolor.hpp>
+
 #include <boost/test/detail/unit_test_parameters.hpp>
 
 // STL
@@ -39,9 +41,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 namespace {
@@ -192,13 +192,9 @@
 //____________________________________________________________________________//
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_PLAIN_REPORT_FORMATTER_IPP_020105GER
Modified: trunk/boost/test/impl/progress_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/progress_monitor.ipp	(original)
+++ trunk/boost/test/impl/progress_monitor.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -17,11 +17,14 @@
 
 // Boost.Test
 #include <boost/test/progress_monitor.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 
 #include <boost/test/detail/unit_test_parameters.hpp>
 #include <boost/test/utils/setcolor.hpp>
 
+#include <boost/test/tree/test_unit.hpp>
+#include <boost/test/tree/test_case_counter.hpp>
+#include <boost/test/tree/traverse.hpp>
+
 // Boost
 #include <boost/progress.hpp>
 #include <boost/scoped_ptr.hpp>
@@ -31,7 +34,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -109,11 +111,8 @@
 //____________________________________________________________________________//
     
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
Modified: trunk/boost/test/impl/results_collector.ipp
==============================================================================
--- trunk/boost/test/impl/results_collector.ipp	(original)
+++ trunk/boost/test/impl/results_collector.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -16,11 +16,15 @@
 #define BOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
 
 // Boost.Test
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/unit_test_log.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/framework.hpp>
 
+#include <boost/test/tree/test_unit.hpp>
+#include <boost/test/tree/visitor.hpp>
+#include <boost/test/tree/test_case_counter.hpp>
+#include <boost/test/tree/traverse.hpp>
+
 // Boost
 #include <boost/cstdlib.hpp>
 
@@ -32,7 +36,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -284,11 +287,8 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
Modified: trunk/boost/test/impl/results_reporter.ipp
==============================================================================
--- trunk/boost/test/impl/results_reporter.ipp	(original)
+++ trunk/boost/test/impl/results_reporter.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -17,12 +17,15 @@
 
 // Boost.Test
 #include <boost/test/results_reporter.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/framework.hpp>
 #include <boost/test/output/plain_report_formatter.hpp>
 #include <boost/test/output/xml_report_formatter.hpp>
 
+#include <boost/test/tree/visitor.hpp>
+#include <boost/test/tree/test_unit.hpp>
+#include <boost/test/tree/traverse.hpp>
+
 #include <boost/test/detail/unit_test_parameters.hpp>
 
 // Boost
@@ -38,9 +41,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace results_reporter {
 
 // ************************************************************************** //
@@ -190,13 +191,9 @@
 //____________________________________________________________________________//
 
 } // namespace results_reporter
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_RESULTS_REPORTER_IPP_020105GER
Deleted: trunk/boost/test/impl/test_main.ipp
==============================================================================
--- trunk/boost/test/impl/test_main.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2010.
-//  (C) Copyright Beman Dawes 1995-2001.
-//  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$
-//
-//  Description : implements main function for Test Execution Monitor.
-// ***************************************************************************
-
-#ifndef BOOST_TEST_TEST_MAIN_IPP_012205GER
-#define BOOST_TEST_TEST_MAIN_IPP_012205GER
-
-// Boost.Test
-#include <boost/test/framework.hpp>
-#include <boost/test/test_tools.hpp>
-#include <boost/test/unit_test_suite.hpp>
-
-// Boost
-#include <boost/cstdlib.hpp>
-
-#include <boost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-extern int test_main( int argc, char* argv[] );    // prototype for user's test_main()
-
-struct test_main_caller {
-    test_main_caller( int argc, char** argv ) : m_argc( argc ), m_argv( argv ) {}
-    
-    void operator()() {
-        int test_main_result = test_main( m_argc, m_argv );
-
-        // translate a test_main non-success return into a test error
-        BOOST_CHECK( test_main_result == 0 || test_main_result == boost::exit_success );
-    }
-  
-private:
-    // Data members    
-    int      m_argc;
-    char**   m_argv;
-};
-
-// ************************************************************************** //
-// **************                   test main                  ************** //
-// ************************************************************************** //
-
-::boost::unit_test::test_suite*
-init_unit_test_suite( int argc, char* argv[] ) {
-    using namespace ::boost::unit_test;
-    
-    framework::master_test_suite().p_name.value = "Test Program";
-    
-    framework::master_test_suite().add( BOOST_TEST_CASE( test_main_caller( argc, argv ) ) );
-    
-    return 0;
-}
-
-//____________________________________________________________________________//
-
-#include <boost/test/detail/enable_warnings.hpp>
-
-#endif // BOOST_TEST_TEST_MAIN_IPP_012205GER
Modified: trunk/boost/test/impl/test_tools.ipp
==============================================================================
--- trunk/boost/test/impl/test_tools.ipp	(original)
+++ trunk/boost/test/impl/test_tools.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -20,8 +20,8 @@
 #include <boost/test/unit_test_log.hpp>
 #include <boost/test/tools/output_test_stream.hpp>
 #include <boost/test/framework.hpp>
+#include <boost/test/tree/test_unit.hpp>
 #include <boost/test/execution_monitor.hpp> // execution_aborted
-#include <boost/test/unit_test_suite_impl.hpp>
 
 // Boost
 #include <boost/config.hpp>
@@ -52,7 +52,6 @@
 # endif
 
 namespace boost {
-
 namespace test_tools {
 
 // ************************************************************************** //
@@ -626,11 +625,8 @@
 //____________________________________________________________________________//
 
 } // namespace test_tools
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_TEST_TOOLS_IPP_012205GER
Modified: trunk/boost/test/impl/unit_test_log.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_log.ipp	(original)
+++ trunk/boost/test/impl/unit_test_log.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -18,7 +18,6 @@
 // Boost.Test
 #include <boost/test/unit_test_log.hpp>
 #include <boost/test/unit_test_log_formatter.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/execution_monitor.hpp>
 #include <boost/test/framework.hpp>
 
@@ -39,7 +38,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -463,11 +461,8 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_UNIT_TEST_LOG_IPP_012205GER
Modified: trunk/boost/test/impl/unit_test_main.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_main.ipp	(original)
+++ trunk/boost/test/impl/unit_test_main.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -18,9 +18,12 @@
 // Boost.Test
 #include <boost/test/framework.hpp>
 #include <boost/test/results_collector.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/results_reporter.hpp>
 
+#include <boost/test/tree/visitor.hpp>
+#include <boost/test/tree/test_unit.hpp>
+#include <boost/test/tree/traverse.hpp>
+
 #include <boost/test/detail/unit_test_parameters.hpp>
 
 // Boost
@@ -36,7 +39,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 namespace ut_detail {
@@ -118,7 +120,6 @@
 }
 
 } // namespace unit_test
-
 } // namespace boost
 
 #if !defined(BOOST_TEST_DYN_LINK) && !defined(BOOST_TEST_NO_MAIN)
Modified: trunk/boost/test/impl/unit_test_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_monitor.ipp	(original)
+++ trunk/boost/test/impl/unit_test_monitor.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -18,10 +18,9 @@
 
 // Boost.Test
 #include <boost/test/unit_test_monitor.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/framework.hpp>
-
+#include <boost/test/tree/test_unit.hpp>
 #include <boost/test/detail/unit_test_parameters.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
@@ -29,7 +28,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -71,11 +69,8 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_UNIT_TEST_MONITOR_IPP_012205GER
Modified: trunk/boost/test/impl/unit_test_parameters.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_parameters.ipp	(original)
+++ trunk/boost/test/impl/unit_test_parameters.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -62,7 +62,6 @@
 # endif
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -545,13 +544,9 @@
 //____________________________________________________________________________//
 
 } // namespace runtime_config
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
Modified: trunk/boost/test/impl/unit_test_suite.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_suite.ipp	(original)
+++ trunk/boost/test/impl/unit_test_suite.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -18,10 +18,18 @@
 
 // Boost.Test
 #include <boost/detail/workaround.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
+
 #include <boost/test/framework.hpp>
-#include <boost/test/utils/foreach.hpp>
 #include <boost/test/results_collector.hpp>
+
+#include <boost/test/tree/test_unit.hpp>
+#include <boost/test/tree/visitor.hpp>
+#include <boost/test/tree/traverse.hpp>
+#include <boost/test/tree/auto_registration.hpp>
+#include <boost/test/tree/global_fixture.hpp>
+
+#include <boost/test/utils/foreach.hpp>
+
 #include <boost/test/detail/unit_test_parameters.hpp>
 
 // Boost
@@ -33,16 +41,13 @@
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-    BOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450) \
-    /**/
+#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) && BOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450)
     using std::rand; // rand is in std and random_shuffle is in _STL
 #endif
 
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -215,8 +220,15 @@
 
     try {
         if( runtime_config::random_seed() == 0 ) {
-            BOOST_TEST_FOREACH( test_unit_id, id, suite.m_members )
-                traverse_test_tree( id, V, ignore_status );
+            unsigned total_members = suite.m_members.size();
+            for( unsigned i=0; i < total_members; ) {
+                // this statement can remove the test unit from this list
+                traverse_test_tree( suite.m_members[i], V, ignore_status );
+                if( total_members > suite.m_members.size() )
+                    total_members = suite.m_members.size();
+                else
+                    ++i;
+            }
         }
         else {
             std::vector<test_unit_id> members( suite.m_members );
@@ -225,7 +237,7 @@
                 traverse_test_tree( id, V, ignore_status );
         }
         
-    } catch( test_being_aborted const& ) {
+    } catch( framework::test_being_aborted const& ) {
         V.test_suite_finish( suite );
         framework::test_unit_aborted( suite );
 
@@ -345,7 +357,6 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>
Modified: trunk/boost/test/impl/xml_log_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/xml_log_formatter.ipp	(original)
+++ trunk/boost/test/impl/xml_log_formatter.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -17,10 +17,9 @@
 
 // Boost.Test
 #include <boost/test/output/xml_log_formatter.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/framework.hpp>
+#include <boost/test/tree/test_unit.hpp>
 #include <boost/test/utils/basic_cstring/io.hpp>
-
 #include <boost/test/utils/xml_printer.hpp>
 
 // Boost
@@ -34,9 +33,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 static const_string tu_type_name( test_unit const& tu )
@@ -192,26 +189,28 @@
    
 }
 
+//____________________________________________________________________________//
+
 void
 xml_log_formatter::entry_context_finish( std::ostream& ostr )
 {
     ostr << BOOST_TEST_L( "</Context>" );
 }
 
+//____________________________________________________________________________//
+
 void
 xml_log_formatter::log_entry_context( std::ostream& ostr, const_string context_descr )
 {
     ostr << BOOST_TEST_L( "<Frame><![CDATA[" ) << context_descr << BOOST_TEST_L( "]]></Frame>" );
 }
 
-} // namespace output
+//____________________________________________________________________________//
 
+} // namespace output
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_XML_LOG_FORMATTER_IPP_020105GER
Modified: trunk/boost/test/impl/xml_report_formatter.ipp
==============================================================================
--- trunk/boost/test/impl/xml_report_formatter.ipp	(original)
+++ trunk/boost/test/impl/xml_report_formatter.ipp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -17,9 +17,9 @@
 
 // Boost.Test
 #include <boost/test/results_collector.hpp>
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/output/xml_report_formatter.hpp>
 
+#include <boost/test/tree/test_unit.hpp>
 #include <boost/test/utils/xml_printer.hpp>
 #include <boost/test/utils/basic_cstring/io.hpp>
 
@@ -28,9 +28,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 void
@@ -103,13 +101,9 @@
 //____________________________________________________________________________//
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
Modified: trunk/boost/test/included/unit_test.hpp
==============================================================================
--- trunk/boost/test/included/unit_test.hpp	(original)
+++ trunk/boost/test/included/unit_test.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -17,7 +17,7 @@
 
 #include <boost/test/impl/compiler_log_formatter.ipp>
 #include <boost/test/impl/debug.ipp>
-#include <boost/test/impl/decorators.ipp>
+#include <boost/test/impl/decorator.ipp>
 #include <boost/test/impl/framework.ipp>
 #include <boost/test/impl/exception_safety.ipp>
 #include <boost/test/impl/execution_monitor.ipp>
Modified: trunk/boost/test/interaction/exception_safety.hpp
==============================================================================
--- trunk/boost/test/interaction/exception_safety.hpp	(original)
+++ trunk/boost/test/interaction/exception_safety.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -59,7 +59,6 @@
 /**/
 
 namespace boost {
-
 namespace itest {
 
 // ************************************************************************** //
@@ -69,7 +68,6 @@
 void    BOOST_TEST_DECL exception_safety( boost::function<void ()> const& F, unit_test::const_string test_name = "" );
 
 } // namespace itest
-
 } // namespace boost
 
 // ************************************************************************** //
Modified: trunk/boost/test/interaction/logged_expectations.hpp
==============================================================================
--- trunk/boost/test/interaction/logged_expectations.hpp	(original)
+++ trunk/boost/test/interaction/logged_expectations.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -54,7 +54,6 @@
 /**/
 
 namespace boost {
-
 namespace itest {
 
 // ************************************************************************** //
@@ -65,7 +64,6 @@
 logged_expectations( boost::function<void ()> const&  F, unit_test::const_string log_file_name, bool test_or_log = true );
 
 } // namespace itest
-
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>
Modified: trunk/boost/test/interaction/mock_object.hpp
==============================================================================
--- trunk/boost/test/interaction/mock_object.hpp	(original)
+++ trunk/boost/test/interaction/mock_object.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -27,7 +27,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace itest {
 
 // ************************************************************************** //
@@ -286,6 +285,8 @@
     }
 };
 
+//____________________________________________________________________________//
+
 // !! MO_BINARY_OP( BOOST_PP_COMMA(), "Comma operator" )
 
 MO_BINARY_BOOL_OP( !=, "Inequality" )
@@ -319,8 +320,9 @@
 MO_BINARY_OP( <<, "Left shift" )
 MO_BINARY_OP( >>, "Right shift" )
 
-} // namespace itest
+//____________________________________________________________________________//
 
+} // namespace itest
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>
Modified: trunk/boost/test/minimal.hpp
==============================================================================
--- trunk/boost/test/minimal.hpp	(original)
+++ trunk/boost/test/minimal.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -101,7 +101,6 @@
 }; // monitor
 
 } // namespace minimal_test
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/output/compiler_log_formatter.hpp
==============================================================================
--- trunk/boost/test/output/compiler_log_formatter.hpp	(original)
+++ trunk/boost/test/output/compiler_log_formatter.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -24,9 +24,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 // ************************************************************************** //
@@ -61,13 +59,9 @@
 };
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_COMPILER_LOG_FORMATTER_HPP_020105GER
Modified: trunk/boost/test/output/plain_report_formatter.hpp
==============================================================================
--- trunk/boost/test/output/plain_report_formatter.hpp	(original)
+++ trunk/boost/test/output/plain_report_formatter.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -24,9 +24,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 // ************************************************************************** //
@@ -50,13 +48,9 @@
 };
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_PLAIN_REPORT_FORMATTER_HPP_020105GER
Modified: trunk/boost/test/output/xml_log_formatter.hpp
==============================================================================
--- trunk/boost/test/output/xml_log_formatter.hpp	(original)
+++ trunk/boost/test/output/xml_log_formatter.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -27,9 +27,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 // ************************************************************************** //
@@ -66,13 +64,9 @@
 };
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_XML_LOG_FORMATTER_020105GER
Modified: trunk/boost/test/output/xml_report_formatter.hpp
==============================================================================
--- trunk/boost/test/output/xml_report_formatter.hpp	(original)
+++ trunk/boost/test/output/xml_report_formatter.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -24,9 +24,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace output {
 
 // ************************************************************************** //
@@ -46,13 +44,9 @@
 };
 
 } // namespace output
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_XML_REPORT_FORMATTER_HPP_020105GER
Modified: trunk/boost/test/parameterized_test.hpp
==============================================================================
--- trunk/boost/test/parameterized_test.hpp	(original)
+++ trunk/boost/test/parameterized_test.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -43,7 +43,6 @@
 /**/
 
 namespace boost {
-
 namespace unit_test {
 
 namespace ut_detail {
@@ -152,11 +151,8 @@
 //____________________________________________________________________________//
 
 } // unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_PARAMETERIZED_TEST_HPP_021102GER
Modified: trunk/boost/test/progress_monitor.hpp
==============================================================================
--- trunk/boost/test/progress_monitor.hpp	(original)
+++ trunk/boost/test/progress_monitor.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -27,7 +27,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -61,7 +60,6 @@
 BOOST_TEST_SINGLETON_INST( progress_monitor )
 
 } // namespace unit_test
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/results_collector.hpp
==============================================================================
--- trunk/boost/test/results_collector.hpp	(original)
+++ trunk/boost/test/results_collector.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -30,7 +30,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -103,11 +102,8 @@
 BOOST_TEST_SINGLETON_INST( results_collector )
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
Modified: trunk/boost/test/results_reporter.hpp
==============================================================================
--- trunk/boost/test/results_reporter.hpp	(original)
+++ trunk/boost/test/results_reporter.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -28,9 +28,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace results_reporter {
 
 // ************************************************************************** //
@@ -75,13 +73,9 @@
 { make_report( DETAILED_REPORT, id ); }
 
 } // namespace results_reporter
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_RESULTS_REPORTER_HPP_021205GER
Modified: trunk/boost/test/tools/floating_point_comparison.hpp
==============================================================================
--- trunk/boost/test/tools/floating_point_comparison.hpp	(original)
+++ trunk/boost/test/tools/floating_point_comparison.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -33,8 +33,8 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
-namespace math { namespace fpc {
+namespace math { 
+namespace fpc {
 
 // ************************************************************************** //
 // **************                 fpc::strength                ************** //
@@ -208,7 +208,7 @@
     // Data members
     FPT                 m_fraction_tolerance;
     fpc::strength       m_strength;
-	mutable FPT         m_failed_fraction;
+    mutable FPT         m_failed_fraction;
 };
 
 // ************************************************************************** //
@@ -329,11 +329,8 @@
 //____________________________________________________________________________//
 
 } // namespace test_tools
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_FLOATING_POINT_COMAPARISON_HPP_071894GER
Modified: trunk/boost/test/tools/impl.hpp
==============================================================================
Binary files. No diff available.
Modified: trunk/boost/test/tools/output_test_stream.hpp
==============================================================================
--- trunk/boost/test/tools/output_test_stream.hpp	(original)
+++ trunk/boost/test/tools/output_test_stream.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -34,7 +34,6 @@
 // class to be used to simplify testing of ostream-based output operations
 
 namespace boost {
-
 namespace test_tools {
 
 class BOOST_TEST_DECL output_test_stream : public wrap_stringstream::wrapped_stream {
@@ -68,11 +67,8 @@
 };
 
 } // namespace test_tools
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
Modified: trunk/boost/test/tools/predicate_result.hpp
==============================================================================
--- trunk/boost/test/tools/predicate_result.hpp	(original)
+++ trunk/boost/test/tools/predicate_result.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -32,7 +32,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace test_tools {
 
 // ************************************************************************** //
@@ -78,11 +77,8 @@
 };
 
 } // namespace test_tools
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_PREDICATE_RESULT_HPP_012705GER
Modified: trunk/boost/test/tools/prod_tools.hpp
==============================================================================
--- trunk/boost/test/tools/prod_tools.hpp	(original)
+++ trunk/boost/test/tools/prod_tools.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -109,9 +109,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace test_tools {
-
 namespace tt_detail {
 
 // ************************************************************************** //
@@ -197,13 +195,9 @@
 //____________________________________________________________________________//
 
 } // namespace tt_detail
-
 } // namespace test_tools
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_PROD_TOOLS_HPP_122109GER
Copied: trunk/boost/test/tree/decorator.hpp (from r74640, /trunk/boost/test/tree/decorators.hpp)
==============================================================================
Binary files. No diff available.
Deleted: trunk/boost/test/tree/decorators.hpp
==============================================================================
Binary file. No diff available.
Modified: trunk/boost/test/tree/observer.hpp
==============================================================================
--- trunk/boost/test/tree/observer.hpp	(original)
+++ trunk/boost/test/tree/observer.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -25,7 +25,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -53,12 +52,9 @@
     BOOST_TEST_PROTECTED_VIRTUAL ~test_observer() {}
 };
 
-} // unit_test
-
+} // namespace unit_test
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_TEST_OBSERVER_HPP_021005GER
Modified: trunk/boost/test/unit_test_log.hpp
==============================================================================
--- trunk/boost/test/unit_test_log.hpp	(original)
+++ trunk/boost/test/unit_test_log.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -39,7 +39,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -142,7 +141,6 @@
 /**/
 
 } // namespace unit_test
-
 } // namespace boost
 
 // ************************************************************************** //
Modified: trunk/boost/test/unit_test_log_formatter.hpp
==============================================================================
--- trunk/boost/test/unit_test_log_formatter.hpp	(original)
+++ trunk/boost/test/unit_test_log_formatter.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -31,7 +31,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -112,7 +111,6 @@
 };
 
 } // namespace unit_test
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/unit_test_monitor.hpp
==============================================================================
--- trunk/boost/test/unit_test_monitor.hpp	(original)
+++ trunk/boost/test/unit_test_monitor.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -26,7 +26,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -58,11 +57,8 @@
 BOOST_TEST_SINGLETON_INST( unit_test_monitor )
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
Modified: trunk/boost/test/unit_test_suite.hpp
==============================================================================
--- trunk/boost/test/unit_test_suite.hpp	(original)
+++ trunk/boost/test/unit_test_suite.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -16,8 +16,9 @@
 #define BOOST_TEST_UNIT_TEST_SUITE_HPP_071894GER
 
 // Boost.Test
-#include <boost/test/unit_test_suite_impl.hpp>
 #include <boost/test/framework.hpp>
+#include <boost/test/tree/auto_registration.hpp>
+#include <boost/test/tree/test_case_template.hpp>
 
 //____________________________________________________________________________//
 
Deleted: trunk/boost/test/unit_test_suite_impl.hpp
==============================================================================
--- trunk/boost/test/unit_test_suite_impl.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
+++ (empty file)
@@ -1,432 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2011.
-//  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$
-//
-//  Description : defines test_unit, test_case, test_case_results, test_suite and test_tree_visitor
-// ***************************************************************************
-
-#ifndef BOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
-
-// Boost.Test
-#include <boost/test/detail/config.hpp>
-#include <boost/test/detail/global_typedef.hpp>
-#include <boost/test/detail/fwd_decl.hpp>
-#include <boost/test/detail/workaround.hpp>
-
-#include <boost/test/utils/class_properties.hpp>
-
-#include <boost/test/tree/observer.hpp>
-#include <boost/test/tree/decorators.hpp>
-
-// Boost
-#include <boost/shared_ptr.hpp>
-#include <boost/mpl/for_each.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/function/function0.hpp>
-
-// STL
-#include <typeinfo> // for typeid
-#include <string>   // for std::string
-#include <list>     // for std::list
-#include <vector>   // for std::vector
-
-#include <boost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace boost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************               test_unit_fixture              ************** //
-// ************************************************************************** //
-
-struct test_unit_fixture {
-};
-
-// ************************************************************************** //
-// **************                   test_unit                  ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL test_unit {
-public:
-    enum { type = tut_any };
-    typedef std::list<test_unit_id> id_list;
-
-    // Constructor
-    test_unit( const_string tu_name, test_unit_type t );
-
-    // dependencies management
-    void    depends_on( test_unit* tu );
-    bool    check_dependencies() const;
-
-    // labels management
-    void    add_label( const_string l );
-    bool    has_label( const_string l ) const;
-
-    // Public r/o properties
-    typedef BOOST_READONLY_PROPERTY(test_unit_id,(framework_impl))  id_t;
-    typedef BOOST_READONLY_PROPERTY(test_unit_id,(test_suite))      parent_id_t;
-    typedef BOOST_READONLY_PROPERTY(id_list,(test_unit))            id_list_t;
-
-    readonly_property<test_unit_type>   p_type;                 // type for this test unit
-    readonly_property<const_string>     p_type_name;            // "case"/"suite"
-    id_t                                p_id;                   // unique id for this test unit
-    parent_id_t                         p_parent_id;            // parent test suite id
-    id_list_t                           p_dependencies;         // list of test units this one depends on
-
-    // Public r/w properties
-    readwrite_property<std::string>     p_name;                 // name for this test unit
-    readwrite_property<std::string>     p_description;          // description for this test unit
-    readwrite_property<unsigned>        p_timeout;              // timeout for the test unit execution 
-    readwrite_property<counter_t>       p_expected_failures;    // number of expected failures in this test unit
-    mutable readwrite_property<bool>    p_enabled;               // enabled/disabled status for this unit
-
-    readwrite_property<decorator::for_test_unit_ptr> p_decorators; // automatically assigned decorators; execution is delayed till framework::init function
-
-    void                                increase_exp_fail( unsigned num );
-
-protected:
-    ~test_unit();
-
-private:
-    // Data members
-    std::list<std::string>              m_labels;
-    decorator::for_test_unit_ptr        m_decorators;
-};
-
-// ************************************************************************** //
-// **************              test_case_generator             ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL test_unit_generator {
-public:
-    virtual test_unit*  next() const = 0;
-
-protected:
-    BOOST_TEST_PROTECTED_VIRTUAL ~test_unit_generator() {}
-};
-
-// ************************************************************************** //
-// **************                   test_case                  ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL test_case : public test_unit {
-public:
-    enum { type = tut_case };
-
-    // Constructor
-    test_case( const_string tc_name, boost::function<void ()> const& test_func );
-
-    // Public property
-    typedef BOOST_READONLY_PROPERTY(boost::function<void ()>,(test_case))  test_func;
-
-    test_func   p_test_func;
-
-private:
-    friend class framework_impl;
-    ~test_case() {}
-};
-
-// ************************************************************************** //
-// **************                  test_suite                  ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL test_suite : public test_unit {
-public:
-    enum { type = tut_suite };
-
-    // Constructor
-    explicit        test_suite( const_string ts_name );
-
-    // test unit list management
-    void            add( test_unit* tu, counter_t expected_failures = 0, unsigned timeout = 0 );
-    void            add( test_unit_generator const& gen, unsigned timeout = 0 );
-    void            remove( test_unit_id id );
-
-    // access methods
-    test_unit_id    get( const_string tu_name ) const;
-    std::size_t     size() const { return m_members.size(); }
-
-protected:
-    friend BOOST_TEST_DECL 
-    void        traverse_test_tree( test_suite const&, test_tree_visitor&, bool );
-    friend class framework_impl;
-    virtual     ~test_suite() {}
-
-    // Data members
-    std::vector<test_unit_id> m_members;
-};
-
-// ************************************************************************** //
-// **************               master_test_suite              ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL master_test_suite_t : public test_suite {
-public:
-    master_test_suite_t() : test_suite( "Master Test Suite" )
-    , argc( 0 )
-    , argv( 0 )
-    {}
-    
-    // Data members    
-    int      argc;
-    char**   argv;
-};
-
-
-// ************************************************************************** //
-// **************               test_tree_visitor              ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL test_tree_visitor {
-public:
-    // test tree visitor interface
-    virtual bool    visit( test_unit const& )               { return true; }
-    virtual void    visit( test_case const& tc )            { visit( (test_unit const&)tc ); }
-    virtual bool    test_suite_start(test_suite const& ts)  { return visit( (test_unit const&)ts ); }
-    virtual void    test_suite_finish( test_suite const& )  {}
-
-protected:
-    BOOST_TEST_PROTECTED_VIRTUAL ~test_tree_visitor() {}
-};
-
-// ************************************************************************** //
-// **************               traverse_test_tree             ************** //
-// ************************************************************************** //
-
-BOOST_TEST_DECL void    traverse_test_tree( test_case const&, test_tree_visitor&, bool ignore_status = false );
-BOOST_TEST_DECL void    traverse_test_tree( test_suite const&, test_tree_visitor&, bool ignore_status = false );
-BOOST_TEST_DECL void    traverse_test_tree( test_unit_id     , test_tree_visitor&, bool ignore_status = false );
-
-//____________________________________________________________________________//
-
-inline void
-traverse_test_tree( test_unit const& tu, test_tree_visitor& V, bool ignore_status = false )
-{
-    if( tu.p_type == tut_case )
-        traverse_test_tree( static_cast<test_case const&>( tu ), V, ignore_status );
-    else
-        traverse_test_tree( static_cast<test_suite const&>( tu ), V, ignore_status );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                test_case_counter             ************** //
-// ************************************************************************** //
-
-class test_case_counter : public test_tree_visitor {
-public:
-    // Constructor
-    test_case_counter() : p_count( 0 ) {}
-
-    BOOST_READONLY_PROPERTY( counter_t, (test_case_counter)) p_count;
-private:
-    // test tree visitor interface
-    virtual void    visit( test_case const& tc )                { if( tc.p_enabled ) ++p_count.value; }
-    virtual bool    test_suite_start( test_suite const& ts )    { return ts.p_enabled; }
-};
-
-// ************************************************************************** //
-// **************              test_being_aborted              ************** //
-// ************************************************************************** //
-
-struct BOOST_TEST_DECL test_being_aborted {};
-
-// ************************************************************************** //
-// **************            user_tc_method_invoker            ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-BOOST_TEST_DECL std::string normalize_test_case_name( const_string tu_name );
-
-template<typename InstanceType,typename UserTestCase>
-struct user_tc_method_invoker {
-    typedef void (UserTestCase::*TestMethod )();
-
-    user_tc_method_invoker( shared_ptr<InstanceType> inst, TestMethod test_method )
-    : m_inst( inst ), m_test_method( test_method ) {}
-
-    void operator()() { ((*m_inst).*m_test_method)(); }
-
-    shared_ptr<InstanceType> m_inst;
-    TestMethod               m_test_method;
-};
-
-} // namespace ut_detail
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                make_test_case                ************** //
-// ************************************************************************** //
-
-inline test_case*
-make_test_case( boost::function<void ()> const& test_func, const_string tc_name )
-{
-    return new test_case( ut_detail::normalize_test_case_name( tc_name ), test_func );
-}
-
-//____________________________________________________________________________//
-
-template<typename UserTestCase, typename InstanceType>
-inline test_case*
-make_test_case( void (UserTestCase::*           test_method )(),
-                const_string                    tc_name,
-                boost::shared_ptr<InstanceType> user_test_case )
-{
-    return new test_case( ut_detail::normalize_test_case_name( tc_name ), 
-                          ut_detail::user_tc_method_invoker<InstanceType,UserTestCase>( user_test_case, test_method ) );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************           auto_test_unit_registrar           ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-struct BOOST_TEST_DECL auto_test_unit_registrar
-{
-    // Constructors
-                auto_test_unit_registrar( test_case* tc, decorator::collector* decorators, counter_t exp_fail = 0 );
-    explicit    auto_test_unit_registrar( const_string ts_name, decorator::collector* decorators );
-    explicit    auto_test_unit_registrar( test_unit_generator const& tc_gen, decorator::collector* decorators );
-    explicit    auto_test_unit_registrar( int );
-
-private:
-    static std::list<test_suite*>& curr_ts_store();
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                global_fixture                ************** //
-// ************************************************************************** //
-
-class BOOST_TEST_DECL global_fixture : public test_observer { 
-public: 
-    // Constructor
-    global_fixture();
-}; 
-
-//____________________________________________________________________________//
-
-namespace ut_detail {
-
-template<typename F> 
-struct global_fixture_impl : public global_fixture {
-    // Constructor
-    global_fixture_impl(): m_fixure( 0 )    {}
-
-    // test observer interface
-    virtual void    test_start( counter_t ) { m_fixure = new F; }
-    virtual void    test_finish()           { delete m_fixure; m_fixure = 0; } 
-    virtual void    test_aborted()          { delete m_fixure; m_fixure = 0; } 
-
-private:
-    // Data members
-    F*  m_fixure;
-}; 
-
-// ************************************************************************** //
-// **************          test_case_template_invoker          ************** //
-// ************************************************************************** //
-
-template<typename TestCaseTemplate,typename TestType>
-class test_case_template_invoker {
-public:
-    void    operator()()    { TestCaseTemplate::run( (boost::type<TestType>*)0 ); }
-};
-
-// ************************************************************************** //
-// **************           generate_test_case_4_type          ************** //
-// ************************************************************************** //
-
-template<typename Generator,typename TestCaseTemplate>
-struct generate_test_case_4_type {
-    explicit    generate_test_case_4_type( const_string tc_name, Generator& G )
-    : m_test_case_name( tc_name )
-    , m_holder( G )
-    {}
-
-    template<typename TestType>
-    void        operator()( mpl::identity<TestType> )
-    {
-        std::string full_name;
-        assign_op( full_name, m_test_case_name, 0 );
-        full_name += '<';
-        full_name += typeid(TestType).name();
-        if( boost::is_const<TestType>::value )
-            full_name += " const";
-        full_name += '>';
-
-        m_holder.m_test_cases.push_back( 
-            new test_case( full_name, test_case_template_invoker<TestCaseTemplate,TestType>() ) );
-    }
-
-private:
-    // Data members
-    const_string    m_test_case_name;
-    Generator&      m_holder;
-};
-
-// ************************************************************************** //
-// **************              test_case_template              ************** //
-// ************************************************************************** //
-
-template<typename TestCaseTemplate,typename TestTypesList>
-class template_test_case_gen : public test_unit_generator {
-public:
-    // Constructor
-    template_test_case_gen( const_string tc_name )
-    {
-        typedef generate_test_case_4_type<template_test_case_gen<TestCaseTemplate,TestTypesList>,
-                                          TestCaseTemplate
-        > single_test_gen;
-        mpl::for_each<TestTypesList,mpl::make_identity<mpl::_> >( single_test_gen( tc_name, *this ) );
-    }
-
-    virtual test_unit* next() const
-    {
-        if( m_test_cases.empty() )
-            return 0;
-    
-        test_unit* res = m_test_cases.front();
-        m_test_cases.pop_front();
-
-        return res;
-    }
-
-    // Data members
-    mutable std::list<test_unit*> m_test_cases;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-} // unit_test
-
-} // namespace boost
-
-#include <boost/test/detail/enable_warnings.hpp>
-
-#endif // BOOST_TEST_UNIT_TEST_SUITE_IMPL_HPP_071894GER
-
Modified: trunk/boost/test/utils/algorithm.hpp
==============================================================================
--- trunk/boost/test/utils/algorithm.hpp	(original)
+++ trunk/boost/test/utils/algorithm.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -216,11 +216,8 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_ALGORITHM_HPP_062304GER
Modified: trunk/boost/test/utils/assign_op.hpp
==============================================================================
--- trunk/boost/test/utils/assign_op.hpp	(original)
+++ trunk/boost/test/utils/assign_op.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -16,7 +16,6 @@
 #define BOOST_TEST_ASSIGN_OP_033005GER
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -34,7 +33,6 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
 #endif // BOOST_TEST_ASSIGN_OP_033005GER
Modified: trunk/boost/test/utils/class_properties.hpp
==============================================================================
--- trunk/boost/test/utils/class_properties.hpp	(original)
+++ trunk/boost/test/utils/class_properties.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -36,7 +36,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -209,11 +208,8 @@
 //____________________________________________________________________________//
 
 } // unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #undef BOOST_TEST_NO_PROTECTED_USING
Modified: trunk/boost/test/utils/custom_manip.hpp
==============================================================================
--- trunk/boost/test/utils/custom_manip.hpp	(original)
+++ trunk/boost/test/utils/custom_manip.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -23,7 +23,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -53,11 +52,8 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_CUSTOM_MANIP_HPP_071894GER
Modified: trunk/boost/test/utils/fixed_mapping.hpp
==============================================================================
--- trunk/boost/test/utils/fixed_mapping.hpp	(original)
+++ trunk/boost/test/utils/fixed_mapping.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -32,7 +32,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // configurable maximum fixed sized mapping size supported by this header.
@@ -107,11 +106,8 @@
 };
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #undef MAX_MAP_SIZE
Modified: trunk/boost/test/utils/foreach.hpp
==============================================================================
--- trunk/boost/test/utils/foreach.hpp	(original)
+++ trunk/boost/test/utils/foreach.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -35,9 +35,7 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
-
 namespace for_each {
 
 // ************************************************************************** //
@@ -310,13 +308,9 @@
 //____________________________________________________________________________//
 
 } // namespace for_each
-
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_FOREACH_HPP_021005GER
Modified: trunk/boost/test/utils/lazy_ostream.hpp
==============================================================================
--- trunk/boost/test/utils/lazy_ostream.hpp	(original)
+++ trunk/boost/test/utils/lazy_ostream.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -30,7 +30,6 @@
 // ************************************************************************** //
 
 namespace boost {
-
 namespace unit_test {
 
 class lazy_ostream {
@@ -56,7 +55,7 @@
 
 //____________________________________________________________________________//
 
-template<typename PrevType, typename T>
+template<typename PrevType, typename T, typename StorageT=T const&>
 class lazy_ostream_impl : public lazy_ostream {
 public:
     lazy_ostream_impl( PrevType const& prev, T const& value )
@@ -73,7 +72,7 @@
 private:
     // Data members
     PrevType    m_prev;
-    T const&    m_value;
+    StorageT    m_value;
 };
 
 //____________________________________________________________________________//
@@ -100,23 +99,23 @@
 #if BOOST_TEST_USE_STD_LOCALE
 
 template<typename R,typename S>
-inline lazy_ostream_impl<lazy_ostream const&,R& (BOOST_TEST_CALL_DECL *)(S&)>
+inline lazy_ostream_impl<lazy_ostream const&,R& (BOOST_TEST_CALL_DECL *)(S&),R& (BOOST_TEST_CALL_DECL *)(S&)>
 operator<<( lazy_ostream const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
 {
     typedef R& (BOOST_TEST_CALL_DECL * ManipType)(S&);
 
-    return lazy_ostream_impl<lazy_ostream const&,ManipType>( prev, man );
+    return lazy_ostream_impl<lazy_ostream const&,ManipType,ManipType>( prev, man );
 }
 
 //____________________________________________________________________________//
 
 template<typename PrevPrevType, typename TPrev,typename R,typename S>
-inline lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,R& (BOOST_TEST_CALL_DECL *)(S&)>
+inline lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,R& (BOOST_TEST_CALL_DECL *)(S&),R& (BOOST_TEST_CALL_DECL *)(S&)>
 operator<<( lazy_ostream_impl<PrevPrevType,TPrev> const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
 {
     typedef R& (BOOST_TEST_CALL_DECL * ManipType)(S&);
 
-    return lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,ManipType>( prev, man );
+    return lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev> const&,ManipType,ManipType>( prev, man );
 }
 
 //____________________________________________________________________________//
@@ -124,7 +123,6 @@
 #endif
 
 } // namespace unit_test
-
 } // namespace boost
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/utils/named_params.hpp
==============================================================================
--- trunk/boost/test/utils/named_params.hpp	(original)
+++ trunk/boost/test/utils/named_params.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -30,7 +30,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace nfp { // named function parameters
 
 // ************************************************************************** //
@@ -320,7 +319,6 @@
 //____________________________________________________________________________//
 
 } // namespace nfp
-
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>
Modified: trunk/boost/test/utils/rtti.hpp
==============================================================================
--- trunk/boost/test/utils/rtti.hpp	(original)
+++ trunk/boost/test/utils/rtti.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -18,7 +18,6 @@
 #include <cstddef>
 
 namespace boost {
-
 namespace rtti {
 
 // ************************************************************************** //
@@ -58,7 +57,6 @@
 //____________________________________________________________________________//
 
 } // namespace rtti
-
 } // namespace boost
 
 #endif // BOOST_RT_RTTI_HPP_062604GER
Modified: trunk/boost/test/utils/setcolor.hpp
==============================================================================
--- trunk/boost/test/utils/setcolor.hpp	(original)
+++ trunk/boost/test/utils/setcolor.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -27,7 +27,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -111,11 +110,8 @@
 };
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_SETCOLOR_HPP_121009GER
Modified: trunk/boost/test/utils/trivial_singleton.hpp
==============================================================================
--- trunk/boost/test/utils/trivial_singleton.hpp	(original)
+++ trunk/boost/test/utils/trivial_singleton.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -25,7 +25,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -41,7 +40,7 @@
     ~singleton() {}
 };
 
-} // namespace unit_test
+//____________________________________________________________________________//
 
 #define BOOST_TEST_SINGLETON_CONS( type )       \
 friend class boost::unit_test::singleton<type>; \
@@ -65,9 +64,11 @@
 
 #endif
 
+//____________________________________________________________________________//
+
+} // namespace unit_test
 } // namespace boost
 
-//____________________________________________________________________________//
 
 #include <boost/test/detail/enable_warnings.hpp>
 
Modified: trunk/boost/test/utils/wrap_stringstream.hpp
==============================================================================
--- trunk/boost/test/utils/wrap_stringstream.hpp	(original)
+++ trunk/boost/test/utils/wrap_stringstream.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -157,8 +157,6 @@
 
 }  // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif  // BOOST_WRAP_STRINGSTREAM_HPP_071894GER
Modified: trunk/boost/test/utils/xml_printer.hpp
==============================================================================
--- trunk/boost/test/utils/xml_printer.hpp	(original)
+++ trunk/boost/test/utils/xml_printer.hpp	2011-10-03 02:59:41 EDT (Mon, 03 Oct 2011)
@@ -33,7 +33,6 @@
 //____________________________________________________________________________//
 
 namespace boost {
-
 namespace unit_test {
 
 // ************************************************************************** //
@@ -108,11 +107,8 @@
 //____________________________________________________________________________//
 
 } // namespace unit_test
-
 } // namespace boost
 
-//____________________________________________________________________________//
-
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_XML_PRINTER_HPP_071894GER