$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74789 - in trunk/boost/test: . detail impl included interaction
From: gennadiy.rozental_at_[hidden]
Date: 2011-10-08 00:50:40
Author: rogeeff
Date: 2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
New Revision: 74789
URL: http://svn.boost.org/trac/boost/changeset/74789
Log:
renamed unit_test_suite.ipp into test_tree.ipp
moved unit_test_parameters.hpp from detail into main directory
New CLA wait_for_debugger: allows to force test module to wait till user attaches debugger
Added:
   trunk/boost/test/impl/test_tree.ipp
      - copied, changed from r74774, /trunk/boost/test/impl/unit_test_suite.ipp
   trunk/boost/test/unit_test_parameters.hpp
      - copied, changed from r74774, /trunk/boost/test/detail/unit_test_parameters.hpp
Removed:
   trunk/boost/test/detail/unit_test_parameters.hpp
   trunk/boost/test/impl/unit_test_suite.ipp
Text files modified: 
   trunk/boost/test/impl/compiler_log_formatter.ipp     |     2                                         
   trunk/boost/test/impl/exception_safety.ipp           |     2                                         
   trunk/boost/test/impl/framework.ipp                  |     2                                         
   trunk/boost/test/impl/plain_report_formatter.ipp     |     2                                         
   trunk/boost/test/impl/progress_monitor.ipp           |     2                                         
   trunk/boost/test/impl/results_reporter.ipp           |     2                                         
   trunk/boost/test/impl/test_tree.ipp                  |     2                                         
   trunk/boost/test/impl/unit_test_log.ipp              |     2                                         
   trunk/boost/test/impl/unit_test_main.ipp             |    11 ++++-                                   
   trunk/boost/test/impl/unit_test_monitor.ipp          |     2                                         
   trunk/boost/test/impl/unit_test_parameters.ipp       |    78 +++++++++++++++++++++++++-------------- 
   trunk/boost/test/included/test_exec_monitor.hpp      |     2                                         
   trunk/boost/test/included/unit_test.hpp              |     2                                         
   trunk/boost/test/interaction/logged_expectations.hpp |     2                                         
   trunk/boost/test/unit_test_parameters.hpp            |     1                                         
   15 files changed, 72 insertions(+), 42 deletions(-)
Deleted: trunk/boost/test/detail/unit_test_parameters.hpp
==============================================================================
--- trunk/boost/test/detail/unit_test_parameters.hpp	2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2010.
-//  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 : storage for unit test framework parameters information
-// ***************************************************************************
-
-#ifndef BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
-#define BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
-
-#include <boost/test/detail/global_typedef.hpp>
-#include <boost/test/detail/log_level.hpp>
-
-#include <boost/test/detail/suppress_warnings.hpp>
-
-// STL
-#include <iosfwd>
-#include <list>
-
-//____________________________________________________________________________//
-
-namespace boost {
-namespace unit_test {
-namespace runtime_config {
-
-// ************************************************************************** //
-// **************                 runtime_config               ************** //
-// ************************************************************************** //
-
-BOOST_TEST_DECL void                    init( int& argc, char** argv );
-
-BOOST_TEST_DECL unit_test::log_level    log_level();
-BOOST_TEST_DECL bool                    no_result_code();
-BOOST_TEST_DECL unit_test::report_level report_level();
-BOOST_TEST_DECL std::list<std::string> const& test_to_run();
-BOOST_TEST_DECL const_string            break_exec_path();
-BOOST_TEST_DECL bool                    save_pattern();
-BOOST_TEST_DECL bool                    show_build_info();
-BOOST_TEST_DECL bool                    list_content();
-BOOST_TEST_DECL bool                    show_progress();
-BOOST_TEST_DECL bool                    catch_sys_errors();
-BOOST_TEST_DECL bool                    color_output();
-BOOST_TEST_DECL bool                    auto_start_dbg();
-BOOST_TEST_DECL bool                    use_alt_stack();
-BOOST_TEST_DECL bool                    detect_fp_exceptions();
-BOOST_TEST_DECL output_format           report_format();
-BOOST_TEST_DECL output_format           log_format();
-BOOST_TEST_DECL std::ostream*           report_sink();
-BOOST_TEST_DECL std::ostream*           log_sink();
-BOOST_TEST_DECL long                    detect_memory_leaks();
-BOOST_TEST_DECL int                     random_seed();
-
-} // namespace runtime_config
-} // namespace unit_test
-} // namespace boost
-
-//____________________________________________________________________________//
-
-#include <boost/test/detail/enable_warnings.hpp>
-
-#endif // BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -23,7 +23,7 @@
 #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>
+#include <boost/test/unit_test_parameters.hpp>
 
 // Boost
 #include <boost/version.hpp>
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -21,7 +21,7 @@
 #if BOOST_TEST_SUPPORT_INTERACTION_TESTING
 
 #include <boost/test/detail/global_typedef.hpp>
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 #include <boost/test/utils/wrap_stringstream.hpp>
 #include <boost/test/utils/iterator/token_iterator.hpp>
Modified: trunk/boost/test/impl/framework.ipp
==============================================================================
--- trunk/boost/test/impl/framework.ipp	(original)
+++ trunk/boost/test/impl/framework.ipp	2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -36,7 +36,7 @@
 #include <boost/test/utils/iterator/token_iterator.hpp>
 #endif
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 #include <boost/test/detail/global_typedef.hpp>
 
 #include <boost/test/utils/foreach.hpp>
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -25,7 +25,7 @@
 #include <boost/test/utils/basic_cstring/io.hpp>
 #include <boost/test/utils/setcolor.hpp>
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 // STL
 #include <iomanip>
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -18,7 +18,7 @@
 // Boost.Test
 #include <boost/test/progress_monitor.hpp>
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 #include <boost/test/utils/setcolor.hpp>
 
 #include <boost/test/tree/test_unit.hpp>
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -26,7 +26,7 @@
 #include <boost/test/tree/test_unit.hpp>
 #include <boost/test/tree/traverse.hpp>
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 // Boost
 #include <boost/scoped_ptr.hpp>
Copied: trunk/boost/test/impl/test_tree.ipp (from r74774, /trunk/boost/test/impl/unit_test_suite.ipp)
==============================================================================
--- /trunk/boost/test/impl/unit_test_suite.ipp	(original)
+++ trunk/boost/test/impl/test_tree.ipp	2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -30,7 +30,7 @@
 
 #include <boost/test/utils/foreach.hpp>
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 // Boost
 #include <boost/timer.hpp>
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -21,7 +21,7 @@
 #include <boost/test/execution_monitor.hpp>
 #include <boost/test/framework.hpp>
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 #include <boost/test/utils/basic_cstring/compare.hpp>
 
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -24,7 +24,7 @@
 #include <boost/test/tree/test_unit.hpp>
 #include <boost/test/tree/traverse.hpp>
 
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 // Boost
 #include <boost/cstdlib.hpp>
@@ -91,8 +91,15 @@
             return boost::exit_success;
         }
 
-        framework::run();
+        if( runtime_config::wait_for_debugger() ) {
+            results_reporter::get_stream() << "Press any key to continue..." << std::endl;
+
+            std::getchar();
+            results_reporter::get_stream() << "Continuing..." << std::endl;
+        }
 
+        framework::run();
+        
         results_reporter::make_report();
 
         return runtime_config::no_result_code() 
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -21,7 +21,7 @@
 #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/unit_test_parameters.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -19,8 +19,8 @@
 #define BOOST_TEST_UNIT_TEST_PARAMETERS_IPP_012205GER
 
 // Boost.Test
-#define MAX_MAP_SIZE 25
-#include <boost/test/detail/unit_test_parameters.hpp>
+
+#include <boost/test/unit_test_parameters.hpp>
 #include <boost/test/utils/basic_cstring/basic_cstring.hpp>
 #include <boost/test/utils/basic_cstring/compare.hpp>
 #include <boost/test/utils/basic_cstring/io.hpp>
@@ -173,32 +173,43 @@
 std::string SAVE_TEST_PATTERN = "save_pattern";
 std::string SHOW_PROGRESS     = "show_progress";
 std::string USE_ALT_STACK     = "use_alt_stack";
+std::string WAIT_FOR_DEBUGGER = "wait_for_debugger";
+
+static const_string
+parameter_2_env_var( const_string param_name )
+{
+    typedef std::map<const_string,const_string> mtype;
+    static mtype s_mapping;
 
-fixed_mapping<const_string,const_string> parameter_2_env_var(
-    AUTO_START_DBG    , "BOOST_TEST_AUTO_START_DBG",
-    BREAK_EXEC_PATH   , "BOOST_TEST_BREAK_EXEC_PATH",
-    BUILD_INFO        , "BOOST_TEST_BUILD_INFO",
-    CATCH_SYS_ERRORS  , "BOOST_TEST_CATCH_SYSTEM_ERRORS",
-    COLOR_OUTPUT      , "BOOST_TEST_COLOR_OUTPUT",
-    DETECT_FP_EXCEPT  , "BOOST_TEST_DETECT_FP_EXCEPTIONS",
-    DETECT_MEM_LEAKS  , "BOOST_TEST_DETECT_MEMORY_LEAK",
-    LIST_CONTENT      , "BOOST_TEST_LIST_CONTENT",
-    LOG_FORMAT        , "BOOST_TEST_LOG_FORMAT",
-    LOG_LEVEL         , "BOOST_TEST_LOG_LEVEL",
-    LOG_SINK          , "BOOST_TEST_LOG_SINK",
-    OUTPUT_FORMAT     , "BOOST_TEST_OUTPUT_FORMAT",
-    RANDOM_SEED       , "BOOST_TEST_RANDOM",
-    REPORT_FORMAT     , "BOOST_TEST_REPORT_FORMAT",
-    REPORT_LEVEL      , "BOOST_TEST_REPORT_LEVEL",
-    REPORT_SINK       , "BOOST_TEST_REPORT_SINK",
-    RESULT_CODE       , "BOOST_TEST_RESULT_CODE",
-    TESTS_TO_RUN      , "BOOST_TESTS_TO_RUN",
-    SAVE_TEST_PATTERN , "BOOST_TEST_SAVE_PATTERN",
-    SHOW_PROGRESS     , "BOOST_TEST_SHOW_PROGRESS",
-    USE_ALT_STACK     , "BOOST_TEST_USE_ALT_STACK",
+    if( s_mapping.empty() ) {
+        s_mapping[AUTO_START_DBG]       = "BOOST_TEST_AUTO_START_DBG";
+        s_mapping[BREAK_EXEC_PATH]      = "BOOST_TEST_BREAK_EXEC_PATH";
+        s_mapping[BUILD_INFO]           = "BOOST_TEST_BUILD_INFO";
+        s_mapping[CATCH_SYS_ERRORS]     = "BOOST_TEST_CATCH_SYSTEM_ERRORS";
+        s_mapping[COLOR_OUTPUT]         = "BOOST_TEST_COLOR_OUTPUT";
+        s_mapping[DETECT_FP_EXCEPT]     = "BOOST_TEST_DETECT_FP_EXCEPTIONS";
+        s_mapping[DETECT_MEM_LEAKS]     = "BOOST_TEST_DETECT_MEMORY_LEAK";
+        s_mapping[LIST_CONTENT]         = "BOOST_TEST_LIST_CONTENT";
+        s_mapping[LOG_FORMAT]           = "BOOST_TEST_LOG_FORMAT";
+        s_mapping[LOG_LEVEL]            = "BOOST_TEST_LOG_LEVEL";
+        s_mapping[LOG_SINK]             = "BOOST_TEST_LOG_SINK";
+        s_mapping[OUTPUT_FORMAT]        = "BOOST_TEST_OUTPUT_FORMAT";
+        s_mapping[RANDOM_SEED]          = "BOOST_TEST_RANDOM";
+        s_mapping[REPORT_FORMAT]        = "BOOST_TEST_REPORT_FORMAT";
+        s_mapping[REPORT_LEVEL]         = "BOOST_TEST_REPORT_LEVEL";
+        s_mapping[REPORT_SINK]          = "BOOST_TEST_REPORT_SINK";
+        s_mapping[RESULT_CODE]          = "BOOST_TEST_RESULT_CODE";
+        s_mapping[TESTS_TO_RUN]         = "BOOST_TESTS_TO_RUN";
+        s_mapping[SAVE_TEST_PATTERN]    = "BOOST_TEST_SAVE_PATTERN";
+        s_mapping[SHOW_PROGRESS]        = "BOOST_TEST_SHOW_PROGRESS";
+        s_mapping[USE_ALT_STACK]        = "BOOST_TEST_USE_ALT_STACK";
+        s_mapping[WAIT_FOR_DEBUGGER]    = "BOOST_TEST_WAIT_FOR_DEBUGGER";
+    }
 
-    ""
-);
+    mtype::const_iterator it = s_mapping.find( param_name );
+
+    return it == s_mapping.end() ? const_string() : it->second;
+}
 
 //____________________________________________________________________________//
 
@@ -233,7 +244,7 @@
     boost::optional<T> v;
 
 #ifndef UNDER_CE
-    env::get( parameter_2_env_var[parameter_name], v );
+    env::get( parameter_2_env_var(parameter_name), v );
 #endif
 
     if( v )
@@ -320,6 +331,9 @@
               << cla::named_parameter<bool>( USE_ALT_STACK )
                 - (cla::prefix = "--",cla::separator = "=",cla::guess_name,cla::optional,
                    cla::description = "Turns on/off usage of an alternative stack for signal handling")
+              << cla::dual_name_parameter<bool>( WAIT_FOR_DEBUGGER + "|w" )
+                - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,cla::optional_value,
+                   cla::description = "Forces test module to wait for button to be pressed before starting test run")
 
               << cla::dual_name_parameter<bool>( "help|?" )
                 - (cla::prefix = "--|-",cla::separator = "=",cla::guess_name,cla::optional,
@@ -454,7 +468,7 @@
 bool
 auto_start_dbg()
 {
-    // !! set debugger as an option
+    // !! ?? set debugger as an option
     return retrieve_parameter( AUTO_START_DBG, s_cla_parser, false );
 ;
 }
@@ -462,6 +476,14 @@
 //____________________________________________________________________________//
 
 bool
+wait_for_debugger()
+{
+    return retrieve_parameter( WAIT_FOR_DEBUGGER, s_cla_parser, false );
+}
+
+//____________________________________________________________________________//
+
+bool
 use_alt_stack()
 {
     return retrieve_parameter( USE_ALT_STACK, s_cla_parser, true );
Deleted: trunk/boost/test/impl/unit_test_suite.ipp
==============================================================================
--- trunk/boost/test/impl/unit_test_suite.ipp	2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
+++ (empty file)
@@ -1,364 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2010.
-//  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 : privides core implementation for Unit Test Framework.
-//                Extensions can be provided in separate files
-// ***************************************************************************
-
-#ifndef BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
-#define BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
-
-// Boost.Test
-#include <boost/detail/workaround.hpp>
-
-#include <boost/test/framework.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
-#include <boost/timer.hpp>
-
-// STL
-#include <algorithm>
-#include <vector>
-
-#include <boost/test/detail/suppress_warnings.hpp>
-
-#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 {
-
-// ************************************************************************** //
-// **************                   test_unit                  ************** //
-// ************************************************************************** //
-
-test_unit::test_unit( const_string name, test_unit_type t )
-: p_type( t )
-, p_type_name( t == tut_case ? "case" : "suite" )
-, p_id( INV_TEST_UNIT_ID )
-, p_name( std::string( name.begin(), name.size() ) )
-, p_enabled( true )
-{
-}
-
-//____________________________________________________________________________//
-
-test_unit::~test_unit()
-{
-    framework::deregister_test_unit( this );
-}
-
-//____________________________________________________________________________//
-
-void
-test_unit::depends_on( test_unit* tu )
-{
-    p_dependencies.value.push_back( tu->p_id );
-}
-
-//____________________________________________________________________________//
-
-bool
-test_unit::check_dependencies() const
-{
-    BOOST_TEST_FOREACH( test_unit_id, tu_id, p_dependencies.get() ) {
-        if( !unit_test::results_collector.results( tu_id ).passed() )
-            return false;
-    }
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-void
-test_unit::increase_exp_fail( unsigned num )
-{
-    p_expected_failures.value += num;
-
-    if( p_parent_id != 0 )
-        framework::get<test_suite>( p_parent_id ).increase_exp_fail( num );
-}
-
-//____________________________________________________________________________//
-
-void
-test_unit::add_label( const_string l )
-{
-    m_labels.push_back( std::string() + l );
-}
-
-//____________________________________________________________________________//
-
-bool
-test_unit::has_label( const_string l ) const
-{
-    return std::find( m_labels.begin(), m_labels.end(), l ) != m_labels.end();
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                   test_case                  ************** //
-// ************************************************************************** //
-
-test_case::test_case( const_string name, boost::function<void ()> const& test_func )
-: test_unit( name, static_cast<test_unit_type>(type) )
-, p_test_func( test_func )
-{
-    framework::register_test_unit( this );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  test_suite                  ************** //
-// ************************************************************************** //
-
-//____________________________________________________________________________//
-
-test_suite::test_suite( const_string name )
-: test_unit( name, static_cast<test_unit_type>(type) )
-{
-    framework::register_test_unit( this );
-}
-
-//____________________________________________________________________________//
-
-void
-test_suite::add( test_unit* tu, counter_t expected_failures, unsigned timeout )
-{
-    if( timeout != 0 )
-        tu->p_timeout.value = timeout;
-
-    m_members.push_back( tu->p_id );
-    tu->p_parent_id.value = p_id;
-
-    if( tu->p_expected_failures != 0 )
-        increase_exp_fail( tu->p_expected_failures );
-
-    if( expected_failures )
-        tu->increase_exp_fail( expected_failures );
-}
-
-//____________________________________________________________________________//
-
-void
-test_suite::add( test_unit_generator const& gen, unsigned timeout )
-{
-    test_unit* tu;
-    while((tu = gen.next(), tu))
-        add( tu, 0, timeout );
-}
-
-//____________________________________________________________________________//
-
-void
-test_suite::remove( test_unit_id id )
-{
-    std::vector<test_unit_id>::iterator it = std::find( m_members.begin(), m_members.end(), id );
-
-    if( it != m_members.end() )
-        m_members.erase( it );
-}
-
-//____________________________________________________________________________//
-
-test_unit_id
-test_suite::get( const_string tu_name ) const
-{
-    BOOST_TEST_FOREACH( test_unit_id, id, m_members ) {
-        if( tu_name == framework::get( id, ut_detail::test_id_2_unit_type( id ) ).p_name.get() )
-            return id;
-    }
-
-    return INV_TEST_UNIT_ID;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               traverse_test_tree             ************** //
-// ************************************************************************** //
-
-void
-traverse_test_tree( test_case const& tc, test_tree_visitor& V, bool ignore_status )
-{
-    if( tc.p_enabled || ignore_status )
-        V.visit( tc );
-}
-
-//____________________________________________________________________________//
-
-void
-traverse_test_tree( test_suite const& suite, test_tree_visitor& V, bool ignore_status )
-{
-    if( (!ignore_status && !suite.p_enabled) || !V.test_suite_start( suite ) )
-        return;
-
-    try {
-        if( runtime_config::random_seed() == 0 ) {
-            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 );
-            std::random_shuffle( members.begin(), members.end() );
-            BOOST_TEST_FOREACH( test_unit_id, id, members )
-                traverse_test_tree( id, V, ignore_status );
-        }
-        
-    } catch( framework::test_being_aborted const& ) {
-        V.test_suite_finish( suite );
-        framework::test_unit_aborted( suite );
-
-        throw;
-    }
-
-    V.test_suite_finish( suite );
-}
-
-//____________________________________________________________________________//
-
-void
-traverse_test_tree( test_unit_id id, test_tree_visitor& V, bool ignore_status )
-{
-    if( ut_detail::test_id_2_unit_type( id ) == tut_case )
-        traverse_test_tree( framework::get<test_case>( id ), V, ignore_status );
-    else
-        traverse_test_tree( framework::get<test_suite>( id ), V, ignore_status );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               object generators              ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-std::string
-normalize_test_case_name( const_string name )
-{
-    return ( name[0] == '&'
-                ? std::string( name.begin()+1, name.size()-1 )
-                : std::string( name.begin(), name.size() ) );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************           auto_test_unit_registrar           ************** //
-// ************************************************************************** //
-
-auto_test_unit_registrar::auto_test_unit_registrar( test_case* tc, decorator::collector* decorators, counter_t exp_fail )
-{
-    curr_ts_store().back()->add( tc, exp_fail );
-
-    if( decorators )
-        decorators->store_in( *tc );
-}
-
-//____________________________________________________________________________//
-
-auto_test_unit_registrar::auto_test_unit_registrar( const_string ts_name, decorator::collector* decorators )
-{
-    test_unit_id id = curr_ts_store().back()->get( ts_name );
-
-    test_suite* ts;
-
-    if( id != INV_TEST_UNIT_ID ) {
-        ts = &framework::get<test_suite>( id );
-        BOOST_ASSERT( ts->p_parent_id == curr_ts_store().back()->p_id );
-    }
-    else {
-        ts = new test_suite( ts_name );
-        curr_ts_store().back()->add( ts );
-    }
-
-    if( decorators )
-        decorators->store_in( *ts );
-
-    curr_ts_store().push_back( ts );
-}
-
-//____________________________________________________________________________//
-
-auto_test_unit_registrar::auto_test_unit_registrar( test_unit_generator const& tc_gen, decorator::collector* decorators )
-{
-    curr_ts_store().back()->add( tc_gen );
-
-    // !! ??if( decorators )
-    // decorators->apply( *tc );
-
-}
-
-//____________________________________________________________________________//
-
-auto_test_unit_registrar::auto_test_unit_registrar( int )
-{
-    if( curr_ts_store().size() == 0 )
-        return; // report error?
-
-    curr_ts_store().pop_back();
-}
-
-//____________________________________________________________________________//
-
-std::list<test_suite*>&
-auto_test_unit_registrar::curr_ts_store()
-{
-    static std::list<test_suite*> inst( 1, &framework::master_test_suite() );
-    return inst;
-}
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                global_fixture                ************** //
-// ************************************************************************** //
-
-global_fixture::global_fixture()
-{
-    framework::register_observer( *this );
-} 
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-} // namespace boost
-
-#include <boost/test/detail/enable_warnings.hpp>
-
-#endif // BOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
Modified: trunk/boost/test/included/test_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/included/test_exec_monitor.hpp	(original)
+++ trunk/boost/test/included/test_exec_monitor.hpp	2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -26,11 +26,11 @@
 #include <boost/test/impl/results_reporter.ipp>
 #include <boost/test/impl/test_main.ipp>
 #include <boost/test/impl/test_tools.ipp>
+#include <boost/test/impl/test_tree.ipp>
 #include <boost/test/impl/unit_test_log.ipp>
 #include <boost/test/impl/unit_test_main.ipp>
 #include <boost/test/impl/unit_test_monitor.ipp>
 #include <boost/test/impl/unit_test_parameters.ipp>
-#include <boost/test/impl/unit_test_suite.ipp>
 #include <boost/test/impl/xml_log_formatter.ipp>
 #include <boost/test/impl/xml_report_formatter.ipp>
 
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -28,11 +28,11 @@
 #include <boost/test/impl/results_collector.ipp>
 #include <boost/test/impl/results_reporter.ipp>
 #include <boost/test/impl/test_tools.ipp>
+#include <boost/test/impl/test_tree.ipp>
 #include <boost/test/impl/unit_test_log.ipp>
 #include <boost/test/impl/unit_test_main.ipp>
 #include <boost/test/impl/unit_test_monitor.ipp>
 #include <boost/test/impl/unit_test_parameters.ipp>
-#include <boost/test/impl/unit_test_suite.ipp>
 #include <boost/test/impl/xml_log_formatter.ipp>
 #include <boost/test/impl/xml_report_formatter.ipp>
 
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-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -17,7 +17,7 @@
 
 // Boost.Test
 #include <boost/test/detail/config.hpp>
-#include <boost/test/detail/unit_test_parameters.hpp>
+#include <boost/test/unit_test_parameters.hpp>
 
 // Boost
 #include <boost/function/function0.hpp>
Copied: trunk/boost/test/unit_test_parameters.hpp (from r74774, /trunk/boost/test/detail/unit_test_parameters.hpp)
==============================================================================
--- /trunk/boost/test/detail/unit_test_parameters.hpp	(original)
+++ trunk/boost/test/unit_test_parameters.hpp	2011-10-08 00:50:38 EDT (Sat, 08 Oct 2011)
@@ -48,6 +48,7 @@
 BOOST_TEST_DECL bool                    catch_sys_errors();
 BOOST_TEST_DECL bool                    color_output();
 BOOST_TEST_DECL bool                    auto_start_dbg();
+BOOST_TEST_DECL bool                    wait_for_debugger();
 BOOST_TEST_DECL bool                    use_alt_stack();
 BOOST_TEST_DECL bool                    detect_fp_exceptions();
 BOOST_TEST_DECL output_format           report_format();