$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: gennadiy.rozental_at_[hidden]
Date: 2007-10-15 22:03:17
Author: rogeeff
Date: 2007-10-15 22:03:16 EDT (Mon, 15 Oct 2007)
New Revision: 40067
URL: http://svn.boost.org/trac/boost/changeset/40067
Log:
proper report for the exceptions in inti_unit_test_suite function
Text files modified: 
   trunk/boost/test/impl/framework.ipp |    30 +++++++++++++++++++++++++++---          
   1 files changed, 27 insertions(+), 3 deletions(-)
Modified: trunk/boost/test/impl/framework.ipp
==============================================================================
--- trunk/boost/test/impl/framework.ipp	(original)
+++ trunk/boost/test/impl/framework.ipp	2007-10-15 22:03:16 EDT (Mon, 15 Oct 2007)
@@ -88,6 +88,20 @@
     counter_t       m_tc_amount;
 };
 
+//____________________________________________________________________________//
+
+struct test_init_caller {
+    test_init_caller() : m_manual_test_units( 0 ) {}
+    int operator()()
+    {
+        m_manual_test_units = init_unit_test_suite( framework::master_test_suite().argc, framework::master_test_suite().argv );
+        return 0;
+    }
+
+    // Data members
+    test_suite* m_manual_test_units;
+};
+
 }
 
 // ************************************************************************** //
@@ -240,9 +254,19 @@
     if( !init_unit_test() )
         throw setup_error( BOOST_TEST_L("test tree initialization error" ) );
 #else
-    test_suite* s = init_unit_test_suite( argc, argv );
-    if( s )
-        master_test_suite().add( s );
+    try {
+        boost::execution_monitor em;
+
+        ut_detail::test_init_caller tic;
+
+        em.execute( tic );
+
+        if( tic.m_manual_test_units )
+            master_test_suite().add( tic.m_manual_test_units );
+    }
+    catch( execution_exception const& ex )  {
+        throw setup_error( ex.what() );
+    }
 #endif
 
 #endif