Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r62016 - in trunk/boost/test: . detail impl included output utils utils/basic_cstring utils/iterator utils/runtime utils/runtime/cla utils/runtime/cla/detail utils/runtime/cla/iface utils/runtime/env utils/runtime/file
From: gennadiy.rozental_at_[hidden]
Date: 2010-05-15 22:45:43


Author: rogeeff
Date: 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
New Revision: 62016
URL: http://svn.boost.org/trac/boost/changeset/62016

Log:
New floating point portable interfaces introduced in namespace fpe
FPE enable/disable now works on *nix as well
FPE handling is split from system errors handling. You can detect FPE even if catch_system_error is false
SIGCHLD handling removed
seh_catch_preventer eliminated in latest versions of MSVC
Added an ability to erase registered exception translator
Lazy_ostream updated to be usable in more use cases
New production testing tools interface introduced
New header for the execution monitor standalone usage
Added:
   trunk/boost/test/included/execution_monitor.hpp (contents, props changed)
   trunk/boost/test/prod_tools.hpp (contents, props changed)
Properties modified:
   trunk/boost/test/utils/setcolor.hpp (contents, props changed)
Text files modified:
   trunk/boost/test/auto_unit_test.hpp | 2
   trunk/boost/test/debug.hpp | 2
   trunk/boost/test/debug_config.hpp | 2
   trunk/boost/test/detail/config.hpp | 8
   trunk/boost/test/detail/enable_warnings.hpp | 2
   trunk/boost/test/detail/fwd_decl.hpp | 2
   trunk/boost/test/detail/global_typedef.hpp | 2
   trunk/boost/test/detail/log_level.hpp | 2
   trunk/boost/test/detail/suppress_warnings.hpp | 2
   trunk/boost/test/detail/unit_test_parameters.hpp | 2
   trunk/boost/test/detail/workaround.hpp | 2
   trunk/boost/test/exception_safety.hpp | 2
   trunk/boost/test/execution_monitor.hpp | 190 +++++++++++++++++++++-----
   trunk/boost/test/floating_point_comparison.hpp | 225 +++++++++++++++++++------------
   trunk/boost/test/framework.hpp | 2
   trunk/boost/test/impl/compiler_log_formatter.ipp | 2
   trunk/boost/test/impl/cpp_main.ipp | 2
   trunk/boost/test/impl/debug.ipp | 2
   trunk/boost/test/impl/exception_safety.ipp | 2
   trunk/boost/test/impl/execution_monitor.ipp | 281 +++++++++++++++++++++------------------
   trunk/boost/test/impl/framework.ipp | 2
   trunk/boost/test/impl/interaction_based.ipp | 2
   trunk/boost/test/impl/logged_expectations.ipp | 2
   trunk/boost/test/impl/plain_report_formatter.ipp | 2
   trunk/boost/test/impl/progress_monitor.ipp | 2
   trunk/boost/test/impl/results_collector.ipp | 2
   trunk/boost/test/impl/results_reporter.ipp | 2
   trunk/boost/test/impl/test_main.ipp | 2
   trunk/boost/test/impl/test_tools.ipp | 2
   trunk/boost/test/impl/unit_test_log.ipp | 2
   trunk/boost/test/impl/unit_test_main.ipp | 2
   trunk/boost/test/impl/unit_test_monitor.ipp | 2
   trunk/boost/test/impl/unit_test_parameters.ipp | 2
   trunk/boost/test/impl/unit_test_suite.ipp | 2
   trunk/boost/test/impl/xml_log_formatter.ipp | 2
   trunk/boost/test/impl/xml_report_formatter.ipp | 2
   trunk/boost/test/included/prg_exec_monitor.hpp | 2
   trunk/boost/test/included/test_exec_monitor.hpp | 2
   trunk/boost/test/included/unit_test.hpp | 2
   trunk/boost/test/interaction_based.hpp | 2
   trunk/boost/test/logged_expectations.hpp | 2
   trunk/boost/test/minimal.hpp | 2
   trunk/boost/test/mock_object.hpp | 2
   trunk/boost/test/output/compiler_log_formatter.hpp | 2
   trunk/boost/test/output/plain_report_formatter.hpp | 2
   trunk/boost/test/output/xml_log_formatter.hpp | 2
   trunk/boost/test/output/xml_report_formatter.hpp | 2
   trunk/boost/test/output_test_stream.hpp | 2
   trunk/boost/test/parameterized_test.hpp | 2
   trunk/boost/test/predicate_result.hpp | 2
   trunk/boost/test/prg_exec_monitor.hpp | 2
   trunk/boost/test/progress_monitor.hpp | 2
   trunk/boost/test/results_collector.hpp | 2
   trunk/boost/test/results_reporter.hpp | 2
   trunk/boost/test/test_case_template.hpp | 2
   trunk/boost/test/test_exec_monitor.hpp | 2
   trunk/boost/test/test_observer.hpp | 2
   trunk/boost/test/test_tools.hpp | 14
   trunk/boost/test/unit_test.hpp | 2
   trunk/boost/test/unit_test_log.hpp | 2
   trunk/boost/test/unit_test_log_formatter.hpp | 2
   trunk/boost/test/unit_test_monitor.hpp | 2
   trunk/boost/test/unit_test_suite.hpp | 2
   trunk/boost/test/unit_test_suite_impl.hpp | 2
   trunk/boost/test/utils/algorithm.hpp | 2
   trunk/boost/test/utils/assign_op.hpp | 2
   trunk/boost/test/utils/basic_cstring/basic_cstring.hpp | 2
   trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp | 2
   trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp | 2
   trunk/boost/test/utils/basic_cstring/compare.hpp | 2
   trunk/boost/test/utils/basic_cstring/io.hpp | 2
   trunk/boost/test/utils/callback.hpp | 2
   trunk/boost/test/utils/class_properties.hpp | 2
   trunk/boost/test/utils/custom_manip.hpp | 2
   trunk/boost/test/utils/fixed_mapping.hpp | 2
   trunk/boost/test/utils/foreach.hpp | 2
   trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp | 2
   trunk/boost/test/utils/iterator/input_iterator_facade.hpp | 2
   trunk/boost/test/utils/iterator/istream_line_iterator.hpp | 2
   trunk/boost/test/utils/iterator/token_iterator.hpp | 2
   trunk/boost/test/utils/lazy_ostream.hpp | 47 +++--
   trunk/boost/test/utils/named_params.hpp | 2
   trunk/boost/test/utils/nullstream.hpp | 2
   trunk/boost/test/utils/rtti.hpp | 2
   trunk/boost/test/utils/runtime/argument.hpp | 2
   trunk/boost/test/utils/runtime/cla/argument_factory.hpp | 2
   trunk/boost/test/utils/runtime/cla/argv_traverser.cpp | 2
   trunk/boost/test/utils/runtime/cla/argv_traverser.hpp | 2
   trunk/boost/test/utils/runtime/cla/argv_traverser.ipp | 2
   trunk/boost/test/utils/runtime/cla/basic_parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/char_parameter.cpp | 2
   trunk/boost/test/utils/runtime/cla/char_parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/char_parameter.ipp | 2
   trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp | 2
   trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp | 2
   trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp | 2
   trunk/boost/test/utils/runtime/cla/fwd.hpp | 2
   trunk/boost/test/utils/runtime/cla/id_policy.cpp | 2
   trunk/boost/test/utils/runtime/cla/id_policy.hpp | 2
   trunk/boost/test/utils/runtime/cla/id_policy.ipp | 2
   trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp | 2
   trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp | 2
   trunk/boost/test/utils/runtime/cla/modifier.hpp | 2
   trunk/boost/test/utils/runtime/cla/named_parameter.cpp | 2
   trunk/boost/test/utils/runtime/cla/named_parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/named_parameter.ipp | 2
   trunk/boost/test/utils/runtime/cla/parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/parser.cpp | 2
   trunk/boost/test/utils/runtime/cla/parser.hpp | 2
   trunk/boost/test/utils/runtime/cla/parser.ipp | 2
   trunk/boost/test/utils/runtime/cla/positional_parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/typed_parameter.hpp | 2
   trunk/boost/test/utils/runtime/cla/validation.cpp | 2
   trunk/boost/test/utils/runtime/cla/validation.hpp | 2
   trunk/boost/test/utils/runtime/cla/validation.ipp | 2
   trunk/boost/test/utils/runtime/cla/value_generator.hpp | 2
   trunk/boost/test/utils/runtime/cla/value_handler.hpp | 2
   trunk/boost/test/utils/runtime/config.hpp | 2
   trunk/boost/test/utils/runtime/configuration.hpp | 2
   trunk/boost/test/utils/runtime/env/environment.cpp | 2
   trunk/boost/test/utils/runtime/env/environment.hpp | 2
   trunk/boost/test/utils/runtime/env/environment.ipp | 2
   trunk/boost/test/utils/runtime/env/fwd.hpp | 2
   trunk/boost/test/utils/runtime/env/modifier.hpp | 2
   trunk/boost/test/utils/runtime/env/variable.hpp | 2
   trunk/boost/test/utils/runtime/file/config_file.cpp | 2
   trunk/boost/test/utils/runtime/file/config_file.hpp | 2
   trunk/boost/test/utils/runtime/file/config_file_iterator.cpp | 2
   trunk/boost/test/utils/runtime/file/config_file_iterator.hpp | 2
   trunk/boost/test/utils/runtime/fwd.hpp | 2
   trunk/boost/test/utils/runtime/interpret_argument_value.hpp | 2
   trunk/boost/test/utils/runtime/parameter.hpp | 2
   trunk/boost/test/utils/runtime/trace.hpp | 2
   trunk/boost/test/utils/runtime/validation.hpp | 2
   trunk/boost/test/utils/setcolor.hpp | 2
   trunk/boost/test/utils/trivial_singleton.hpp | 2
   trunk/boost/test/utils/wrap_stringstream.hpp | 2
   trunk/boost/test/utils/xml_printer.hpp | 2
   139 files changed, 621 insertions(+), 410 deletions(-)

Modified: trunk/boost/test/auto_unit_test.hpp
==============================================================================
--- trunk/boost/test/auto_unit_test.hpp (original)
+++ trunk/boost/test/auto_unit_test.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/debug.hpp
==============================================================================
--- trunk/boost/test/debug.hpp (original)
+++ trunk/boost/test/debug.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2006-2008.
+// (C) Copyright Gennadiy Rozental 2006-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)

Modified: trunk/boost/test/debug_config.hpp
==============================================================================
--- trunk/boost/test/debug_config.hpp (original)
+++ trunk/boost/test/debug_config.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2006-2008.
+// (C) Copyright Gennadiy Rozental 2006-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)

Modified: trunk/boost/test/detail/config.hpp
==============================================================================
--- trunk/boost/test/detail/config.hpp (original)
+++ trunk/boost/test/detail/config.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)
@@ -19,6 +19,12 @@
 #include <boost/config.hpp> // compilers workarounds
 #include <boost/detail/workaround.hpp>
 
+#if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) && \
+ (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
+ BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
+# define BOOST_SEH_BASED_SIGNAL_HANDLING
+#endif
+
 //____________________________________________________________________________//
 
 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) || \

Modified: trunk/boost/test/detail/enable_warnings.hpp
==============================================================================
--- trunk/boost/test/detail/enable_warnings.hpp (original)
+++ trunk/boost/test/detail/enable_warnings.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/detail/fwd_decl.hpp
==============================================================================
--- trunk/boost/test/detail/fwd_decl.hpp (original)
+++ trunk/boost/test/detail/fwd_decl.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/detail/global_typedef.hpp
==============================================================================
--- trunk/boost/test/detail/global_typedef.hpp (original)
+++ trunk/boost/test/detail/global_typedef.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/detail/log_level.hpp
==============================================================================
--- trunk/boost/test/detail/log_level.hpp (original)
+++ trunk/boost/test/detail/log_level.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/detail/suppress_warnings.hpp
==============================================================================
--- trunk/boost/test/detail/suppress_warnings.hpp (original)
+++ trunk/boost/test/detail/suppress_warnings.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/detail/workaround.hpp
==============================================================================
--- trunk/boost/test/detail/workaround.hpp (original)
+++ trunk/boost/test/detail/workaround.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/exception_safety.hpp
==============================================================================
--- trunk/boost/test/exception_safety.hpp (original)
+++ trunk/boost/test/exception_safety.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/execution_monitor.hpp
==============================================================================
--- trunk/boost/test/execution_monitor.hpp (original)
+++ trunk/boost/test/execution_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (C) Copyright Gennadiy Rozental 2001-2010.
 // (C) Copyright Beman Dawes 2001.
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at
@@ -39,39 +39,104 @@
 #include <boost/test/utils/class_properties.hpp>
 
 // Boost
-#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
 #include <boost/scoped_array.hpp>
 #include <boost/type.hpp>
 #include <boost/cstdlib.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+
+// for the FP constants and control routines
+#include <float.h>
+
+#ifndef EM_INVALID
+#define EM_INVALID _EM_INVALID
+#endif
+
+#ifndef EM_DENORMAL
+#define EM_DENORMAL _EM_DENORMAL
+#endif
+
+#ifndef EM_ZERODIVIDE
+#define EM_ZERODIVIDE _EM_ZERODIVIDE
+#endif
+
+#ifndef EM_OVERFLOW
+#define EM_OVERFLOW _EM_OVERFLOW
+#endif
+
+#ifndef EM_UNDERFLOW
+#define EM_UNDERFLOW _EM_UNDERFLOW
+#endif
+
+#ifndef MCW_EM
+#define MCW_EM _MCW_EM
+#endif
+
+#else // based on ISO C standard
+
+#ifndef __CYGWIN__
+#include <fenv.h>
+#endif
+
+#endif
+
 //____________________________________________________________________________//
 
 namespace boost {
 
-namespace detail {
-
 // ************************************************************************** //
-// ************** detail::translate_exception_base ************** //
+// ************** detail::translator_holder_base ************** //
 // ************************************************************************** //
 
-class BOOST_TEST_DECL translate_exception_base {
+namespace detail {
+
+class translator_holder_base;
+typedef boost::shared_ptr<translator_holder_base> translator_holder_base_ptr;
+
+class BOOST_TEST_DECL translator_holder_base {
+protected:
+ typedef boost::unit_test::const_string const_string;
 public:
     // Constructor
- explicit translate_exception_base( boost::scoped_ptr<translate_exception_base>& next )
+ translator_holder_base( translator_holder_base_ptr next, const_string tag )
+ : m_next( next )
+ , m_tag( tag.begin(), tag.end() )
     {
- next.swap( m_next );
     }
 
     // Destructor
- virtual ~translate_exception_base() {}
+ virtual ~translator_holder_base() {}
 
+ // translator holder interface
+ // invokes the function F inside the try/catch guarding against specific exception
     virtual int operator()( unit_test::callback0<int> const& F ) = 0;
+ // erases specific translator holder from the chain
+ translator_holder_base_ptr erase( translator_holder_base_ptr this_, const_string tag )
+ {
+ if( m_next )
+ m_next = m_next->erase( m_next, tag );
+
+ return m_tag == tag ? m_next : this_;
+ }
+#ifndef BOOST_NO_RTTI
+ virtual translator_holder_base_ptr erase( translator_holder_base_ptr this_, std::type_info const& ) = 0;
+ template<typename ExceptionType>
+ translator_holder_base_ptr erase( translator_holder_base_ptr this_, boost::type<ExceptionType>* = 0 )
+ {
+ if( m_next )
+ m_next = m_next->erase<ExceptionType>( m_next );
+
+ return erase( this_, typeid(ExceptionType) );
+ }
+#endif
 
 protected:
     // Data members
- boost::scoped_ptr<translate_exception_base> m_next;
+ translator_holder_base_ptr m_next;
+ std::string m_tag;
 };
 
 } // namespace detail
@@ -141,15 +206,10 @@
 // ************************************************************************** //
 
 class BOOST_TEST_DECL execution_monitor {
+ typedef boost::unit_test::const_string const_string;
 public:
     // Constructor
- execution_monitor()
- : p_catch_system_errors( true )
- , p_auto_start_dbg( false )
- , p_timeout( 0 )
- , p_use_alt_stack( true )
- , p_detect_fp_exceptions( false )
- {}
+ execution_monitor();
 
     // Public properties
     
@@ -157,18 +217,22 @@
     // try to catch system errors/exceptions that would cause program to crash
     // in regular case
     unit_test::readwrite_property<bool> p_catch_system_errors;
+
     // The p_auto_start_dbg parameter specifies whether the monitor should
     // try to attach debugger in case of caught system error
     unit_test::readwrite_property<bool> p_auto_start_dbg;
+
     // The p_timeout parameter specifies the seconds that elapse before
     // a timer_error occurs. May be ignored on some platforms.
     unit_test::readwrite_property<int> p_timeout;
+
     // The p_use_alt_stack parameter specifies whether the monitor should
     // use alternative stack for the signal catching
     unit_test::readwrite_property<bool> p_use_alt_stack;
+
     // The p_detect_fp_exceptions parameter specifies whether the monitor should
- // try to detect hardware floating point exceptions
- unit_test::readwrite_property<bool> p_detect_fp_exceptions;
+ // try to detect hardware floating point exceptions (!= 0), and which specific exception to catch
+ unit_test::readwrite_property<unsigned> p_detect_fp_exceptions;
 
     int execute( unit_test::callback0<int> const& F );
     // Returns: Value returned by function call F().
@@ -182,41 +246,58 @@
     // Note: execute() doesn't consider it an error for F to return a non-zero value.
     
     // register custom (user supplied) exception translator
- template<typename Exception, typename ExceptionTranslator>
- void register_exception_translator( ExceptionTranslator const& tr, boost::type<Exception>* = 0 );
+ template<typename ExceptionType, typename ExceptionTranslator>
+ void register_exception_translator( ExceptionTranslator const& tr, const_string tag = const_string(), boost::type<ExceptionType>* = 0 );
+
+ // erase custom exception translator
+ void erase_exception_translator( const_string tag )
+ {
+ m_custom_translators = m_custom_translators->erase( m_custom_translators, tag );
+ }
+ template<typename ExceptionType>
+ void erase_exception_translator( boost::type<ExceptionType>* = 0 )
+ {
+ m_custom_translators = m_custom_translators->erase<ExceptionType>( m_custom_translators );
+ }
 
 private:
     // implementation helpers
     int catch_signals( unit_test::callback0<int> const& F );
 
     // Data members
- boost::scoped_ptr<detail::translate_exception_base> m_custom_translators;
- boost::scoped_array<char> m_alt_stack;
+ detail::translator_holder_base_ptr m_custom_translators;
+ boost::scoped_array<char> m_alt_stack;
 }; // execution_monitor
 
-namespace detail {
-
 // ************************************************************************** //
-// ************** detail::translate_exception ************** //
+// ************** detail::translator_holder ************** //
 // ************************************************************************** //
 
-template<typename Exception, typename ExceptionTranslator>
-class translate_exception : public translate_exception_base
+namespace detail {
+
+template<typename ExceptionType, typename ExceptionTranslator>
+class translator_holder : public translator_holder_base
 {
- typedef boost::scoped_ptr<translate_exception_base> base_ptr;
 public:
- explicit translate_exception( ExceptionTranslator const& tr, base_ptr& next )
- : translate_exception_base( next ), m_translator( tr ) {}
+ explicit translator_holder( ExceptionTranslator const& tr, translator_holder_base_ptr& next, const_string tag = const_string() )
+ : translator_holder_base( next, tag ), m_translator( tr ) {}
 
- int operator()( unit_test::callback0<int> const& F )
+ // translator holder interface
+ virtual int operator()( unit_test::callback0<int> const& F )
     {
         try {
             return m_next ? (*m_next)( F ) : F();
- } catch( Exception const& e ) {
+ } catch( ExceptionType const& e ) {
             m_translator( e );
             return boost::exit_exception_failure;
         }
     }
+#ifndef BOOST_NO_RTTI
+ virtual translator_holder_base_ptr erase( translator_holder_base_ptr this_, std::type_info const& ti )
+ {
+ return ti == typeid(ExceptionType) ? m_next : this_;
+ }
+#endif
 
 private:
     // Data members
@@ -225,12 +306,12 @@
 
 } // namespace detail
 
-template<typename Exception, typename ExceptionTranslator>
+template<typename ExceptionType, typename ExceptionTranslator>
 void
-execution_monitor::register_exception_translator( ExceptionTranslator const& tr, boost::type<Exception>* )
+execution_monitor::register_exception_translator( ExceptionTranslator const& tr, const_string tag, boost::type<ExceptionType>* )
 {
     m_custom_translators.reset(
- new detail::translate_exception<Exception,ExceptionTranslator>( tr,m_custom_translators ) );
+ new detail::translator_holder<ExceptionType,ExceptionTranslator>( tr, m_custom_translators, tag ) );
 }
 
 // ************************************************************************** //
@@ -254,6 +335,43 @@
 
 #define BOOST_TEST_SYS_ASSERT( exp ) if( (exp) ) ; else throw ::boost::system_error( BOOST_STRINGIZE( exp ) )
 
+// ************************************************************************** //
+// **************Floating point exception management interface ************** //
+// ************************************************************************** //
+
+namespace fpe {
+
+enum masks {
+ BOOST_FPE_OFF = 0,
+
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+ BOOST_FPE_DIVBYZERO = EM_ZERODIVIDE,
+ BOOST_FPE_INEXACT = EM_INEXACT,
+ BOOST_FPE_INVALID = EM_INVALID,
+ BOOST_FPE_OVERFLOW = EM_OVERFLOW,
+ BOOST_FPE_UNDERFLOW = EM_UNDERFLOW|EM_DENORMAL,
+
+ BOOST_FPE_ALL = MCW_EM,
+#elif defined(__CYGWIN__)
+ BOOST_FPE_ALL = 1
+#else
+ BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
+ BOOST_FPE_INEXACT = FE_INEXACT,
+ BOOST_FPE_INVALID = FE_INVALID,
+ BOOST_FPE_OVERFLOW = FE_OVERFLOW,
+ BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
+
+ BOOST_FPE_ALL = FE_ALL_EXCEPT,
+#endif
+ 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 boost
 
 //____________________________________________________________________________//

Modified: trunk/boost/test/floating_point_comparison.hpp
==============================================================================
--- trunk/boost/test/floating_point_comparison.hpp (original)
+++ trunk/boost/test/floating_point_comparison.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)
@@ -17,13 +17,16 @@
 
 // Boost.Test
 #include <boost/test/detail/global_typedef.hpp>
-#include <boost/test/utils/class_properties.hpp>
 #include <boost/test/predicate_result.hpp>
 
 // Boost
 #include <boost/limits.hpp> // for std::numeric_limits
 #include <boost/numeric/conversion/conversion_traits.hpp> // for numeric::conversion_traits
 #include <boost/static_assert.hpp>
+#include <boost/assert.hpp>
+
+// STL
+#include <iosfwd>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
@@ -31,25 +34,22 @@
 
 namespace boost {
 
-namespace test_tools {
-
-using unit_test::readonly_property;
+namespace math { namespace fpc {
 
 // ************************************************************************** //
-// ************** floating_point_comparison_type ************** //
+// ************** fpc::strength ************** //
 // ************************************************************************** //
 
-enum floating_point_comparison_type {
+enum strength {
     FPC_STRONG, // "Very close" - equation 1' in docs, the default
     FPC_WEAK // "Close enough" - equation 2' in docs.
-
 };
 
 // ************************************************************************** //
 // ************** details ************** //
 // ************************************************************************** //
 
-namespace tt_detail {
+namespace fpc_detail {
 
 // FPT is Floating-Point Type: float, double, long double or User-Defined.
 template<typename FPT>
@@ -73,7 +73,7 @@
     {
         return std::numeric_limits<FPT>::is_specialized
                     ? (std::numeric_limits<FPT>::max)()
- : static_cast<FPT>(1000000); // for the our purpuses it doesn't really matter what value is returned here
+ : static_cast<FPT>(1000000); // for the our purposes it doesn't really matter what value is returned here
     }
 };
 
@@ -98,12 +98,28 @@
 
 //____________________________________________________________________________//
 
-} // namespace tt_detail
+} // namespace fpc_detail
 
 // ************************************************************************** //
 // ************** tolerance presentation types ************** //
 // ************************************************************************** //
 
+template<typename ToleranceType>
+struct tolerance_traits {
+ template<typename FPT>
+ static ToleranceType actual_tolerance( FPT fraction_tolerance )
+ {
+ return static_cast<ToleranceType>( fraction_tolerance );
+ }
+ template<typename FPT>
+ static FPT fraction_tolerance( ToleranceType tolerance )
+ {
+ return static_cast<FPT>(tolerance);
+ }
+};
+
+//____________________________________________________________________________//
+
 template<typename FPT>
 struct percent_tolerance_t {
     explicit percent_tolerance_t( FPT v ) : m_value( v ) {}
@@ -113,8 +129,25 @@
 
 //____________________________________________________________________________//
 
-template<typename Out,typename FPT>
-Out& operator<<( Out& out, percent_tolerance_t<FPT> t )
+template<typename FPT>
+struct tolerance_traits<percent_tolerance_t<FPT> > {
+ template<typename FPT2>
+ static percent_tolerance_t<FPT> actual_tolerance( FPT2 fraction_tolerance )
+ {
+ return percent_tolerance_t<FPT>( fraction_tolerance * static_cast<FPT2>(100.) );
+ }
+
+ template<typename FPT2>
+ static FPT2 fraction_tolerance( percent_tolerance_t<FPT> tolerance )
+ {
+ return static_cast<FPT2>(tolerance.m_value)*static_cast<FPT2>(0.01);
+ }
+};
+
+//____________________________________________________________________________//
+
+template<typename FPT>
+std::ostream& operator<<( std::ostream& out, percent_tolerance_t<FPT> t )
 {
     return out << t.m_value;
 }
@@ -130,28 +163,70 @@
 
 //____________________________________________________________________________//
 
+// ************************************************************************** //
+// ************** close_at_tolerance ************** //
+// ************************************************************************** //
+
 template<typename FPT>
-struct fraction_tolerance_t {
- explicit fraction_tolerance_t( FPT v ) : m_value( v ) {}
+class close_at_tolerance {
+public:
+ // Public typedefs
+ typedef bool result_type;
 
- FPT m_value;
-};
+ // Constructor
+ template<typename ToleranceType>
+ explicit close_at_tolerance( ToleranceType tolerance, fpc::strength fpc_strength = FPC_STRONG )
+ : m_fraction_tolerance( tolerance_traits<ToleranceType>::template fraction_tolerance<FPT>( tolerance ) )
+ , m_strength( fpc_strength )
+ {
+ BOOST_ASSERT( m_fraction_tolerance >= 0 ); // no reason for tolerance to be negative
+ }
 
-//____________________________________________________________________________//
+ // Access methods
+ FPT fraction_tolerance() const { return m_fraction_tolerance; }
+ fpc::strength strength() const { return m_strength; }
+ FPT failed_fraction() const { return m_failed_fraction; }
 
-template<typename Out,typename FPT>
-Out& operator<<( Out& out, fraction_tolerance_t<FPT> t )
-{
- return out << t.m_value;
-}
+ // Action method
+ bool operator()( FPT left, FPT right ) const
+ {
+ FPT diff = fpc_detail::fpt_abs( left - right );
+ FPT fraction_of_right = fpc_detail::safe_fpt_division( diff, fpc_detail::fpt_abs( right ) );
+ FPT fraction_of_left = fpc_detail::safe_fpt_division( diff, fpc_detail::fpt_abs( left ) );
+
+ bool res( m_strength == FPC_STRONG
+ ? (fraction_of_right <= m_fraction_tolerance && fraction_of_left <= m_fraction_tolerance)
+ : (fraction_of_right <= m_fraction_tolerance || fraction_of_left <= m_fraction_tolerance) );
 
-//____________________________________________________________________________//
+ if( !res )
+ m_failed_fraction = (fraction_of_right > m_fraction_tolerance ? fraction_of_right : fraction_of_left);
 
-template<typename FPT>
-inline fraction_tolerance_t<FPT>
-fraction_tolerance( FPT v )
+ return res;
+ }
+
+private:
+ // Data members
+ FPT m_fraction_tolerance;
+ fpc::strength m_strength;
+ mutable FPT m_failed_fraction;
+};
+
+// ************************************************************************** //
+// ************** is_close_to ************** //
+// ************************************************************************** //
+
+template<typename FPT1, typename FPT2, typename ToleranceType>
+bool
+is_close_to( FPT1 left, FPT2 right, ToleranceType tolerance )
 {
- return fraction_tolerance_t<FPT>( v );
+ // deduce "better" type from types of arguments being compared
+ // if one type is floating and the second integral we use floating type and
+ // value of integral type is promoted to the floating. The same for float and double
+ // But we don't want to compare two values of integral types using this tool.
+ typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
+ BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
+
+ return fpc::close_at_tolerance<FPT>( tolerance, FPC_STRONG )( left, right );
 }
 
 //____________________________________________________________________________//
@@ -161,53 +236,49 @@
 // ************************************************************************** //
 
 template<typename FPT>
-class close_at_tolerance {
+class small_with_tolerance {
 public:
     // Public typedefs
     typedef bool result_type;
 
     // Constructor
- template<typename ToleranceBaseType>
- explicit close_at_tolerance( percent_tolerance_t<ToleranceBaseType> tolerance,
- floating_point_comparison_type fpc_type = FPC_STRONG )
- : p_fraction_tolerance( tt_detail::fpt_abs( static_cast<FPT>(0.01)*tolerance.m_value ) )
- , p_strong_or_weak( fpc_type == FPC_STRONG )
- , m_report_modifier( 100. )
- {}
- template<typename ToleranceBaseType>
- explicit close_at_tolerance( fraction_tolerance_t<ToleranceBaseType> tolerance,
- floating_point_comparison_type fpc_type = FPC_STRONG )
- : p_fraction_tolerance( tt_detail::fpt_abs( tolerance.m_value ) )
- , p_strong_or_weak( fpc_type == FPC_STRONG )
- , m_report_modifier( 1. )
- {}
-
- predicate_result operator()( FPT left, FPT right ) const
- {
- FPT diff = tt_detail::fpt_abs( left - right );
- FPT d1 = tt_detail::safe_fpt_division( diff, tt_detail::fpt_abs( right ) );
- FPT d2 = tt_detail::safe_fpt_division( diff, tt_detail::fpt_abs( left ) );
-
- predicate_result res( p_strong_or_weak
- ? (d1 <= p_fraction_tolerance.get() && d2 <= p_fraction_tolerance.get())
- : (d1 <= p_fraction_tolerance.get() || d2 <= p_fraction_tolerance.get()) );
-
- if( !res )
- res.message() << (( d1 <= p_fraction_tolerance.get() ? d2 : d1 ) * m_report_modifier);
+ explicit small_with_tolerance( FPT tolerance )
+ : m_tolerance( tolerance )
+ {
+ BOOST_ASSERT( m_tolerance >= 0 ); // no reason for the tolerance to be negative
+ }
 
- return res;
+ // Action method
+ bool operator()( FPT fpv ) const
+ {
+ return fpc::fpc_detail::fpt_abs( fpv ) < m_tolerance;
     }
 
- // Public properties
- readonly_property<FPT> p_fraction_tolerance;
- readonly_property<bool> p_strong_or_weak;
 private:
     // Data members
- FPT m_report_modifier;
+ FPT m_tolerance;
 };
 
+// ************************************************************************** //
+// ************** is_small ************** //
+// ************************************************************************** //
+
+template<typename FPT>
+bool
+is_small( FPT fpv, FPT tolerance )
+{
+ return small_with_tolerance<FPT>( tolerance )( fpv );
+}
+
 //____________________________________________________________________________//
 
+} // namespace fpc
+} // namespace math
+
+namespace test_tools {
+
+namespace fpc = math::fpc;
+
 // ************************************************************************** //
 // ************** check_is_close ************** //
 // ************************************************************************** //
@@ -216,34 +287,16 @@
     // Public typedefs
     typedef bool result_type;
 
- template<typename FPT1, typename FPT2, typename ToleranceBaseType>
- predicate_result
- operator()( FPT1 left, FPT2 right, percent_tolerance_t<ToleranceBaseType> tolerance,
- floating_point_comparison_type fpc_type = FPC_STRONG ) const
- {
- // deduce "better" type from types of arguments being compared
- // if one type is floating and the second integral we use floating type and
- // value of integral type is promoted to the floating. The same for float and double
- // But we don't want to compare two values of integral types using this tool.
- typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
- BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
-
- close_at_tolerance<FPT> pred( tolerance, fpc_type );
-
- return pred( left, right );
- }
- template<typename FPT1, typename FPT2, typename ToleranceBaseType>
+ template<typename FPT1, typename FPT2, typename ToleranceType>
     predicate_result
- operator()( FPT1 left, FPT2 right, fraction_tolerance_t<ToleranceBaseType> tolerance,
- floating_point_comparison_type fpc_type = FPC_STRONG ) const
+ operator()( FPT1 left, FPT2 right, ToleranceType tolerance ) const
     {
- // same as in a comment above
- typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
- BOOST_STATIC_ASSERT( !is_integral<FPT>::value );
+ predicate_result pr( fpc::is_close_to( left, right, tolerance ) );
 
- close_at_tolerance<FPT> pred( tolerance, fpc_type );
+ if( !pr )
+ pr.message() << tolerance;
 
- return pred( left, right );
+ return pr;
     }
 };
 
@@ -265,7 +318,7 @@
     bool
     operator()( FPT fpv, FPT tolerance ) const
     {
- return tt_detail::fpt_abs( fpv ) < tt_detail::fpt_abs( tolerance );
+ return fpc::is_small( fpv, tolerance );
     }
 };
 

Modified: trunk/boost/test/framework.hpp
==============================================================================
--- trunk/boost/test/framework.hpp (original)
+++ trunk/boost/test/framework.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/impl/cpp_main.ipp
==============================================================================
--- trunk/boost/test/impl/cpp_main.ipp (original)
+++ trunk/boost/test/impl/cpp_main.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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

Modified: trunk/boost/test/impl/debug.ipp
==============================================================================
--- trunk/boost/test/impl/debug.ipp (original)
+++ trunk/boost/test/impl/debug.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2006-2008.
+// (C) Copyright Gennadiy Rozental 2006-2010.
 // Use, modification, and distribution are subject to the
 // Boost Software License, Version 1.0. (See accompanying file
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: trunk/boost/test/impl/exception_safety.ipp
==============================================================================
--- trunk/boost/test/impl/exception_safety.ipp (original)
+++ trunk/boost/test/impl/exception_safety.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to the
 // Boost Software License, Version 1.0. (See accompanying file
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: trunk/boost/test/impl/execution_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/execution_monitor.ipp (original)
+++ trunk/boost/test/impl/execution_monitor.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (C) Copyright Gennadiy Rozental 2001-2010.
 // (C) Copyright Beman Dawes and Ullrich Koethe 1995-2001.
 // Use, modification, and distribution are subject to the
 // Boost Software License, Version 1.0. (See accompanying file
@@ -64,12 +64,7 @@
 # include <stdio.h>
 #endif
 
-#if defined(_WIN32) && !defined(BOOST_DISABLE_WIN32) && \
- (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
- BOOST_WORKAROUND(__MWERKS__, >= 0x3000))
-
-# define BOOST_SEH_BASED_SIGNAL_HANDLING
-
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
 # include <windows.h>
 
 # if defined(__MWERKS__) || (defined(_MSC_VER) && !defined(UNDER_CE))
@@ -88,33 +83,6 @@
 typedef void* uintptr_t;
 # endif
 
-// for the FP control routines
-#include <float.h>
-
-#ifndef EM_INVALID
-#define EM_INVALID _EM_INVALID
-#endif
-
-#ifndef EM_DENORMAL
-#define EM_DENORMAL _EM_DENORMAL
-#endif
-
-#ifndef EM_ZERODIVIDE
-#define EM_ZERODIVIDE _EM_ZERODIVIDE
-#endif
-
-#ifndef EM_OVERFLOW
-#define EM_OVERFLOW _EM_OVERFLOW
-#endif
-
-#ifndef EM_UNDERFLOW
-#define EM_UNDERFLOW _EM_UNDERFLOW
-#endif
-
-#ifndef MCW_EM
-#define MCW_EM _MCW_EM
-#endif
-
 # if !defined(NDEBUG) && defined(_MSC_VER) && !defined(UNDER_CE)
 # include <crtdbg.h>
 # define BOOST_TEST_CRT_HOOK_TYPE _CRT_REPORT_HOOK
@@ -282,6 +250,27 @@
 
 //____________________________________________________________________________//
 
+struct fpe_except_guard {
+ explicit fpe_except_guard( unsigned 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 )
+ 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 );
+ }
+
+ unsigned m_detect_fpe;
+ unsigned m_previosly_enabled;
+};
+
 } // namespace detail
 
 #if defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
@@ -504,48 +493,6 @@
         }
         break;
 
- case SIGCHLD:
- switch( m_sig_info->si_code ) {
-#ifndef BOOST_TEST_LIMITED_SIGNAL_DETAILS
- case CLD_EXITED:
- report_error( execution_exception::system_error,
- "child has exited; pid: %d; uid: %d; exit value: %d",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
- break;
- case CLD_KILLED:
- report_error( execution_exception::system_error,
- "child was killed; pid: %d; uid: %d; exit value: %d",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
- break;
- case CLD_DUMPED:
- report_error( execution_exception::system_error,
- "child terminated abnormally; pid: %d; uid: %d; exit value: %d",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
- break;
- case CLD_TRAPPED:
- report_error( execution_exception::system_error,
- "traced child has trapped; pid: %d; uid: %d; exit value: %d",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
- break;
- case CLD_STOPPED:
- report_error( execution_exception::system_error,
- "child has stopped; pid: %d; uid: %d; exit value: %d",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
- break;
- case CLD_CONTINUED:
- report_error( execution_exception::system_error,
- "stopped child had continued; pid: %d; uid: %d; exit value: %d",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
- break;
-#endif
- default:
- report_error( execution_exception::system_error,
- "signal: SIGCHLD, si_code: %d (child process has terminated; pid: %d; uid: %d; exit value: %d)",
- (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status, m_sig_info->si_code );
- break;
- }
- break;
-
 #if defined(BOOST_TEST_CATCH_SIGPOLL)
 
     case SIGPOLL:
@@ -691,7 +638,7 @@
 class signal_handler {
 public:
     // Constructor
- explicit signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack );
+ explicit signal_handler( bool catch_system_errors, bool detect_fpe, int timeout, bool attach_dbg, char* alt_stack );
 
     // Destructor
     ~signal_handler();
@@ -716,6 +663,7 @@
     signal_handler* m_prev_handler;
     int m_timeout;
 
+ // Note: We intentionality do not catch SIGCHLD. Users have to deal with it themselves
     signal_action m_ILL_action;
     signal_action m_FPE_action;
     signal_action m_SEGV_action;
@@ -737,11 +685,11 @@
 
 //____________________________________________________________________________//
 
-signal_handler::signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack )
+signal_handler::signal_handler( bool catch_system_errors, bool detect_fpe, int timeout, bool attach_dbg, char* alt_stack )
 : m_prev_handler( s_active_handler )
 , m_timeout( timeout )
 , m_ILL_action ( SIGILL , catch_system_errors, attach_dbg, alt_stack )
-, m_FPE_action ( SIGFPE , catch_system_errors, attach_dbg, alt_stack )
+, m_FPE_action ( SIGFPE , detect_fpe , attach_dbg, alt_stack )
 , m_SEGV_action( SIGSEGV, catch_system_errors, attach_dbg, alt_stack )
 , m_BUS_action ( SIGBUS , catch_system_errors, attach_dbg, alt_stack )
 #ifdef BOOST_TEST_CATCH_SIGPOLL
@@ -853,7 +801,10 @@
     p_use_alt_stack.value = false;
 #endif
 
- signal_handler local_signal_handler( p_catch_system_errors, p_timeout, p_auto_start_dbg,
+ signal_handler local_signal_handler( p_catch_system_errors,
+ p_catch_system_errors || (p_detect_fp_exceptions != fpe::BOOST_FPE_OFF),
+ p_timeout,
+ p_auto_start_dbg,
                                          !p_use_alt_stack ? 0 : m_alt_stack.get() );
 
     if( !sigsetjmp( signal_handler::jump_buffer(), 1 ) )
@@ -902,11 +853,15 @@
     bool m_dir;
 };
 
+//____________________________________________________________________________//
+
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1310)
 static void
 seh_catch_preventer( unsigned int /* id */, _EXCEPTION_POINTERS* /* exps */ )
 {
     throw;
 }
+#endif
 
 //____________________________________________________________________________//
 
@@ -915,13 +870,36 @@
 {
     const unsigned int MSFT_CPP_EXCEPT = 0xE06d7363; // EMSC
 
- if( !m_em->p_catch_system_errors || (id == MSFT_CPP_EXCEPT) )
+ // C++ exception - allow to go through
+ if( id == MSFT_CPP_EXCEPT )
         return EXCEPTION_CONTINUE_SEARCH;
 
+ // FPE detection is enabled, while system exception detection is not - check if this is actually FPE
+ if( !m_em->p_catch_system_errors ) {
+ if( !m_em->p_detect_fp_exceptions )
+ return EXCEPTION_CONTINUE_SEARCH;
+
+ switch( id ) {
+ case EXCEPTION_FLT_DIVIDE_BY_ZERO:
+ case EXCEPTION_FLT_STACK_CHECK:
+ case EXCEPTION_FLT_DENORMAL_OPERAND:
+ case EXCEPTION_FLT_INEXACT_RESULT:
+ case EXCEPTION_FLT_OVERFLOW:
+ case EXCEPTION_FLT_UNDERFLOW:
+ case EXCEPTION_FLT_INVALID_OPERATION:
+ case STATUS_FLOAT_MULTIPLE_FAULTS:
+ case STATUS_FLOAT_MULTIPLE_TRAPS:
+ break;
+ default:
+ return EXCEPTION_CONTINUE_SEARCH;
+ }
+ }
+
     if( !!m_em->p_auto_start_dbg && debug::attach_debugger( false ) ) {
         m_em->p_catch_system_errors.value = false;
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1310)
         _set_se_translator( &seh_catch_preventer );
-
+#endif
         return EXCEPTION_CONTINUE_EXECUTION;
     }
 
@@ -1006,12 +984,10 @@
                               "operand of floating point operation is denormal" );
         break;
 
-# if 0 // !! ??
     case EXCEPTION_FLT_INEXACT_RESULT:
         detail::report_error( execution_exception::system_error,
                               "result of a floating-point operation cannot be represented exactly" );
         break;
-#endif
 
     case EXCEPTION_FLT_OVERFLOW:
         detail::report_error( execution_exception::system_error,
@@ -1027,6 +1003,14 @@
         detail::report_error( execution_exception::system_error, "floating point error" );
         break;
 
+ case STATUS_FLOAT_MULTIPLE_FAULTS:
+ detail::report_error( execution_exception::system_error, "multiple floating point errors" );
+ break;
+
+ case STATUS_FLOAT_MULTIPLE_TRAPS:
+ detail::report_error( execution_exception::system_error, "multiple floating point errors" );
+ break;
+
     case EXCEPTION_BREAKPOINT:
         detail::report_error( execution_exception::system_error, "breakpoint encountered" );
         break;
@@ -1075,30 +1059,6 @@
 
 //____________________________________________________________________________//
 
-void BOOST_TEST_CALL_DECL
-switch_fp_exceptions( bool on_off )
-{
- if( !on_off )
- _clearfp();
-
- int cw = ::_controlfp( 0, 0 );
-
- int exceptions_mask = EM_INVALID|EM_DENORMAL|EM_ZERODIVIDE|EM_OVERFLOW|EM_UNDERFLOW;
-
- if( on_off )
- cw &= ~exceptions_mask; // Set the exception masks on, turn exceptions off
- else
- cw |= exceptions_mask; // Set the exception masks off, turn exceptions on
-
- if( on_off )
- _clearfp();
-
- // Set the control word
- ::_controlfp( cw, MCW_EM );
-}
-
-//____________________________________________________________________________//
-
 } // namespace detail
 
 // ************************************************************************** //
@@ -1111,42 +1071,34 @@
     _invalid_parameter_handler old_iph = _invalid_parameter_handler();
     BOOST_TEST_CRT_HOOK_TYPE old_crt_hook = 0;
 
- if( !p_catch_system_errors )
- _set_se_translator( &detail::seh_catch_preventer );
- else {
- if( !!p_detect_fp_exceptions )
- detail::switch_fp_exceptions( true );
+ if( p_catch_system_errors ) {
+ old_crt_hook = BOOST_TEST_CRT_SET_HOOK( &detail::assert_reporting_function );
 
- old_crt_hook = BOOST_TEST_CRT_SET_HOOK( &detail::assert_reporting_function );
-
- old_iph = _set_invalid_parameter_handler(
- reinterpret_cast<_invalid_parameter_handler>( &detail::invalid_param_handler ) );
+ old_iph = _set_invalid_parameter_handler(
+ reinterpret_cast<_invalid_parameter_handler>( &detail::invalid_param_handler ) );
+ } else if( !p_detect_fp_exceptions ) {
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1310)
+ _set_se_translator( &seh_catch_preventer );
+#endif
     }
 
     detail::system_signal_exception SSE( this );
     
- int ret_val = 0;
-
     __try {
         __try {
- ret_val = detail::do_invoke( m_custom_translators, F );
+ return detail::do_invoke( m_custom_translators, F );
         }
         __except( SSE( GetExceptionCode(), GetExceptionInformation() ) ) {
             throw SSE;
         }
     }
     __finally {
- if( !!p_catch_system_errors ) {
- if( !!p_detect_fp_exceptions )
- detail::switch_fp_exceptions( false );
-
+ if( p_catch_system_errors ) {
             BOOST_TEST_CRT_SET_HOOK( old_crt_hook );
 
            _set_invalid_parameter_handler( old_iph );
         }
     }
-
- return ret_val;
 }
 
 //____________________________________________________________________________//
@@ -1173,9 +1125,19 @@
 #endif // choose signal handler
 
 // ************************************************************************** //
-// ************** execution_monitor::execute ************** //
+// ************** execution_monitor ************** //
 // ************************************************************************** //
 
+execution_monitor::execution_monitor()
+: p_catch_system_errors( true )
+, p_auto_start_dbg( false )
+, p_timeout( 0 )
+, p_use_alt_stack( true )
+, p_detect_fp_exceptions( fpe::BOOST_FPE_OFF )
+{}
+
+//____________________________________________________________________________//
+
 int
 execution_monitor::execute( unit_test::callback0<int> const& F )
 {
@@ -1183,6 +1145,9 @@
         p_catch_system_errors.value = false;
 
     try {
+ detail::fpe_except_guard G( p_detect_fp_exceptions );
+ unit_test::ut_detail::ignore_unused_variable_warning( G );
+
         return catch_signals( F );
     }
 
@@ -1334,6 +1299,68 @@
 
 //____________________________________________________________________________//
 
+// ************************************************************************** //
+// **************Floating point exception management interface ************** //
+// ************************************************************************** //
+
+namespace fpe {
+
+unsigned
+enable( unsigned mask )
+{
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+ _clearfp();
+
+ unsigned old_cw;
+ if( ::_controlfp_s( &old_cw, 0, 0 ) != 0 )
+ return BOOST_FPE_INV;
+
+ // Set the control word
+ if( ::_controlfp_s( 0, old_cw & ~mask, BOOST_FPE_ALL ) != 0 )
+ return BOOST_FPE_INV;
+
+ return ~old_cw & BOOST_FPE_ALL;
+#elif defined(__CYGWIN__)
+ /* Not Implemented in cygwin */
+ return 0;
+#else
+ ::feclearexcept(BOOST_FPE_ALL);
+ int res = ::feenableexcept( mask );
+ return res == -1 ? BOOST_FPE_INV : (unsigned)res;
+#endif
+}
+
+//____________________________________________________________________________//
+
+unsigned
+disable( unsigned mask )
+{
+#ifdef BOOST_SEH_BASED_SIGNAL_HANDLING
+ _clearfp();
+
+ unsigned old_cw;
+ if( ::_controlfp_s( &old_cw, 0, 0 ) != 0 )
+ return BOOST_FPE_INV;
+
+ // Set the control word
+ if( ::_controlfp_s( 0, old_cw | mask, BOOST_FPE_ALL ) != 0 )
+ return BOOST_FPE_INV;
+
+ return ~old_cw & BOOST_FPE_ALL;
+#elif defined(__CYGWIN__)
+ /* Not Implemented in cygwin */
+ return BOOST_FPE_INV;
+#else
+ ::feclearexcept(BOOST_FPE_ALL);
+ int res = ::fedisableexcept( mask );
+ return res == -1 ? BOOST_FPE_INV : (unsigned)res;
+#endif
+}
+
+//____________________________________________________________________________//
+
+} // namespace fpe
+
 } // namespace boost
 
 #include <boost/test/detail/enable_warnings.hpp>

Modified: trunk/boost/test/impl/framework.ipp
==============================================================================
--- trunk/boost/test/impl/framework.ipp (original)
+++ trunk/boost/test/impl/framework.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/impl/interaction_based.ipp
==============================================================================
--- trunk/boost/test/impl/interaction_based.ipp (original)
+++ trunk/boost/test/impl/interaction_based.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to the
 // Boost Software License, Version 1.0. (See accompanying file
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: trunk/boost/test/impl/logged_expectations.ipp
==============================================================================
--- trunk/boost/test/impl/logged_expectations.ipp (original)
+++ trunk/boost/test/impl/logged_expectations.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to the
 // Boost Software License, ELOG_VER 1.0. (See accompanying file
 // http://www.boost.org/LICENSE_1_0.txt)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/impl/progress_monitor.ipp
==============================================================================
--- trunk/boost/test/impl/progress_monitor.ipp (original)
+++ trunk/boost/test/impl/progress_monitor.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/impl/results_collector.ipp
==============================================================================
--- trunk/boost/test/impl/results_collector.ipp (original)
+++ trunk/boost/test/impl/results_collector.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/impl/results_reporter.ipp
==============================================================================
--- trunk/boost/test/impl/results_reporter.ipp (original)
+++ trunk/boost/test/impl/results_reporter.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/impl/test_main.ipp
==============================================================================
--- trunk/boost/test/impl/test_main.ipp (original)
+++ trunk/boost/test/impl/test_main.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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

Modified: trunk/boost/test/impl/test_tools.ipp
==============================================================================
--- trunk/boost/test/impl/test_tools.ipp (original)
+++ trunk/boost/test/impl/test_tools.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Added: trunk/boost/test/included/execution_monitor.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/test/included/execution_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -0,0 +1,21 @@
+// (C) Copyright Gennadiy Rozental 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 : included variant of Execution Monitor to be used independently
+// ***************************************************************************
+
+#ifndef BOOST_INCLUDED_EXECUTION_MONITOR_HPP_051410GER
+#define BOOST_INCLUDED_EXECUTION_MONITOR_HPP_051410GER
+
+#include <boost/test/impl/execution_monitor.ipp>
+#include <boost/test/impl/debug.ipp>
+
+#endif // BOOST_INCLUDED_EXECUTION_MONITOR_HPP_051410GER

Modified: trunk/boost/test/included/prg_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/included/prg_exec_monitor.hpp (original)
+++ trunk/boost/test/included/prg_exec_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/included/unit_test.hpp
==============================================================================
--- trunk/boost/test/included/unit_test.hpp (original)
+++ trunk/boost/test/included/unit_test.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/interaction_based.hpp
==============================================================================
--- trunk/boost/test/interaction_based.hpp (original)
+++ trunk/boost/test/interaction_based.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/logged_expectations.hpp
==============================================================================
--- trunk/boost/test/logged_expectations.hpp (original)
+++ trunk/boost/test/logged_expectations.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/minimal.hpp
==============================================================================
--- trunk/boost/test/minimal.hpp (original)
+++ trunk/boost/test/minimal.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2002-2008.
+// (C) Copyright Gennadiy Rozental 2002-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)

Modified: trunk/boost/test/mock_object.hpp
==============================================================================
--- trunk/boost/test/mock_object.hpp (original)
+++ trunk/boost/test/mock_object.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/output_test_stream.hpp
==============================================================================
--- trunk/boost/test/output_test_stream.hpp (original)
+++ trunk/boost/test/output_test_stream.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/parameterized_test.hpp
==============================================================================
--- trunk/boost/test/parameterized_test.hpp (original)
+++ trunk/boost/test/parameterized_test.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/predicate_result.hpp
==============================================================================
--- trunk/boost/test/predicate_result.hpp (original)
+++ trunk/boost/test/predicate_result.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/prg_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/prg_exec_monitor.hpp (original)
+++ trunk/boost/test/prg_exec_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Added: trunk/boost/test/prod_tools.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/test/prod_tools.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -0,0 +1,209 @@
+// (C) Copyright Gennadiy Rozental 2009-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 : contains implementation of test tools usable in production
+// ***************************************************************************
+
+#ifndef BOOST_TEST_PROD_TOOLS_HPP_122109GER
+#define BOOST_TEST_PROD_TOOLS_HPP_122109GER
+
+// Boost.Test
+#define BOOST_TEST_PROD
+#include <boost/test/test_tools.hpp>
+
+// Boost
+#include <boost/throw_exception.hpp>
+#include <boost/assert.hpp>
+
+#include <boost/test/detail/suppress_warnings.hpp>
+
+//____________________________________________________________________________//
+
+// ************************************************************************** //
+// ************** TOOL BOX ************** //
+// ************************************************************************** //
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_WARN_FAILURE
+#define BOOST_TEST_TOOL_REPORT_WARN_FAILURE( failure_descr )
+#endif
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_CHECK_FAILURE
+#define BOOST_TEST_TOOL_REPORT_CHECK_FAILURE( failure_descr ) \
+ BOOST_THROW_EXCEPTION( std::runtime_error( failure_descr ) )
+#endif
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_REQUIRE_FAILURE
+#define BOOST_TEST_TOOL_REPORT_REQUIRE_FAILURE( failure_descr ) \
+ BOOST_ASSERT( false )
+#endif
+
+//____________________________________________________________________________//
+
+#ifndef BOOST_TEST_TOOL_REPORT_FORMAT
+
+#define BOOST_TEST_TOOL_REPORT_ARG( r, _, arg ) , arg, BOOST_STRINGIZE( arg )
+#define BOOST_TEST_TOOL_REPORT_ARG_DESCR( r, _, arg ) , BOOST_STRINGIZE( arg )
+
+#define BOOST_TEST_TOOL_REPORT_ARGS1(ARGS) \
+ BOOST_PP_SEQ_SIZE(ARGS) BOOST_PP_SEQ_FOR_EACH( BOOST_TEST_TOOL_REPORT_ARG_DESCR, _, ARGS )
+#define BOOST_TEST_TOOL_REPORT_ARGS2(ARGS) 0
+
+#define BOOST_TEST_TOOL_REPORT_FORMAT( frwd_type, pred_res, assertion_descr, CT, ARGS ) \
+ ::boost::test_tools::tt_detail::prod_report_format( pred_res, \
+ ::boost::unit_test::lazy_ostream::instance() << assertion_descr, \
+ ::boost::test_tools::tt_detail::CT, \
+ BOOST_JOIN( BOOST_TEST_TOOL_REPORT_ARGS, frwd_type )( ARGS ) ) \
+/**/
+
+#endif
+
+//____________________________________________________________________________//
+
+// 0 - args exists and need to be forwarded; call prod_check_frwd
+#define BOOST_TEST_TOOL_IMPL0( P, assertion_descr, TL, CT, ARGS ) \
+ if( BOOST_TEST_TOOL_PRED_HOLDER( P, assertion_descr, CT, ARGS ) ) \
+ ((void)0); \
+ else BOOST_JOIN( BOOST_JOIN( BOOST_TEST_TOOL_REPORT_, TL), _FAILURE)( \
+ PH.failure_descr() ) \
+/**/
+
+//____________________________________________________________________________//
+
+// 1 - args exists, but do not need to be forwarded
+#define BOOST_TEST_TOOL_IMPL1( P, assertion_descr, TL, CT, ARGS ) \
+ if( ::boost::test_tools::predicate_result const& pr = P BOOST_PP_SEQ_TO_TUPLE( ARGS ) ) \
+ ((void)0); \
+ else BOOST_JOIN( BOOST_JOIN( BOOST_TEST_TOOL_REPORT_, TL), _FAILURE)( \
+ BOOST_TEST_TOOL_REPORT_FORMAT( 1, pr, assertion_descr, CT, ARGS ) ) \
+/**/
+
+//____________________________________________________________________________//
+
+// 2 - assertion with no arguments;
+#define BOOST_TEST_TOOL_IMPL2( P, assertion_descr, TL, CT, _ ) \
+ if( ::boost::test_tools::predicate_result const& pr = P ) \
+ ((void)0); \
+ else BOOST_JOIN( BOOST_JOIN( BOOST_TEST_TOOL_REPORT_, TL), _FAILURE)( \
+ BOOST_TEST_TOOL_REPORT_FORMAT( 2, pr, assertion_descr, CT, _ ) ) \
+/**/
+
+//____________________________________________________________________________//
+
+#define BOOST_TEST_TOOL_IMPL( frwd_type, P, check_descr, TL, CT, ARGS ) \
+ BOOST_JOIN( BOOST_TEST_TOOL_IMPL, frwd_type )( P, check_descr, TL, CT, ARGS )
+
+//____________________________________________________________________________//
+
+namespace boost {
+
+namespace test_tools {
+
+namespace tt_detail {
+
+// ************************************************************************** //
+// ************** prod_report_format ************** //
+// ************************************************************************** //
+
+BOOST_TEST_DECL std::string
+prod_report_format( predicate_result const& pr,
+ unit_test::lazy_ostream const& assertion_descr,
+ check_type ct, std::size_t num_args, ... );
+
+//____________________________________________________________________________//
+
+// ************************************************************************** //
+// ************** predicate_holder ************** //
+// ************************************************************************** //
+
+#define BOOST_TEST_TOOL_PASS_ARG( r, _, arg ) , arg, BOOST_STRINGIZE( arg )
+
+#define BOOST_TEST_TOOL_PRED_HOLDER( P, assertion_descr, CT, ARGS ) \
+::boost::test_tools::tt_detail::predicate_holder const& PH = \
+::boost::test_tools::tt_detail::predicate_holder( P, assertion_descr, \
+ ::boost::test_tools::tt_detail::CT \
+ BOOST_PP_SEQ_FOR_EACH( BOOST_TEST_TOOL_PASS_ARG, _, ARGS ) ) \
+/**/
+
+#define TEMPL_PARAMS( z, m, dummy ) , typename BOOST_JOIN( Arg, m )
+
+#define FUNC_PARAMS( z, m, dummy ) \
+ , BOOST_JOIN( Arg, m ) const& BOOST_JOIN( arg, m ) \
+ , char const* BOOST_JOIN( BOOST_JOIN( arg, m ), _descr ) \
+/**/
+
+#define PRED_PARAMS( z, m, dummy ) BOOST_PP_COMMA_IF( m ) BOOST_JOIN( arg, m )
+
+#define ARG_INFO( z, m, dummy ) \
+ , BOOST_JOIN( BOOST_JOIN( arg, m ), _descr ) \
+ , &static_cast<const unit_test::lazy_ostream&>(unit_test::lazy_ostream::instance() \
+ << ::boost::test_tools::tt_detail::print_helper( BOOST_JOIN( arg, m ) )) \
+/**/
+
+#define CONSTRUCTOR_IMPL( z, n, dummy ) \
+template<typename Pred \
+ BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), TEMPL_PARAMS, _ )> \
+predicate_holder( Pred P, char const* assertion_descr, check_type ct \
+ BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), FUNC_PARAMS, _ ) ) \
+: m_failure_descr( 0 ) \
+{ \
+ predicate_result const& pr = \
+ P( BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), PRED_PARAMS, _ ) ); \
+ if( pr ) return; \
+ \
+ m_failure_descr = new std::string; \
+ *m_failure_descr = prod_report_format( pr, \
+ ::boost::unit_test::lazy_ostream::instance() << assertion_descr, \
+ ct, \
+ BOOST_PP_ADD( n, 1 ) \
+ BOOST_PP_REPEAT_ ## z( BOOST_PP_ADD( n, 1 ), ARG_INFO, _ ) ); \
+} \
+/**/
+
+#ifndef BOOST_TEST_MAX_PREDICATE_ARITY
+#define BOOST_TEST_MAX_PREDICATE_ARITY 5
+#endif
+
+struct predicate_holder {
+ BOOST_PP_REPEAT( BOOST_TEST_MAX_PREDICATE_ARITY, CONSTRUCTOR_IMPL, _ )
+
+ ~predicate_holder() { if( m_failure_descr ) delete m_failure_descr; }
+ std::string const& failure_descr() const { return *m_failure_descr; }
+ operator bool() const { return !m_failure_descr; }
+private:
+ // Data members
+ std::string* m_failure_descr;
+};
+
+#undef TEMPL_PARAMS
+#undef FUNC_PARAMS
+#undef PRED_INFO
+#undef ARG_INFO
+#undef CONSTRUCTOR_IMPL
+
+//____________________________________________________________________________//
+
+} // namespace tt_detail
+
+} // namespace test_tools
+
+} // namespace boost
+
+//____________________________________________________________________________//
+
+#include <boost/test/detail/enable_warnings.hpp>
+
+#endif // BOOST_TEST_PROD_TOOLS_HPP_122109GER

Modified: trunk/boost/test/progress_monitor.hpp
==============================================================================
--- trunk/boost/test/progress_monitor.hpp (original)
+++ trunk/boost/test/progress_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/results_collector.hpp
==============================================================================
--- trunk/boost/test/results_collector.hpp (original)
+++ trunk/boost/test/results_collector.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/results_reporter.hpp
==============================================================================
--- trunk/boost/test/results_reporter.hpp (original)
+++ trunk/boost/test/results_reporter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/test_case_template.hpp
==============================================================================
--- trunk/boost/test/test_case_template.hpp (original)
+++ trunk/boost/test/test_case_template.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2003-2008.
+// (C) Copyright Gennadiy Rozental 2003-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)

Modified: trunk/boost/test/test_exec_monitor.hpp
==============================================================================
--- trunk/boost/test/test_exec_monitor.hpp (original)
+++ trunk/boost/test/test_exec_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/test_observer.hpp
==============================================================================
--- trunk/boost/test/test_observer.hpp (original)
+++ trunk/boost/test/test_observer.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/test_tools.hpp
==============================================================================
--- trunk/boost/test/test_tools.hpp (original)
+++ trunk/boost/test/test_tools.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)
@@ -230,20 +230,20 @@
 //____________________________________________________________________________//
 
 #define BOOST_WARN_CLOSE( L, R, T ) BOOST_TEST_TOOL_IMPL( 0, \
- ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE, (L)(R)(::boost::test_tools::percent_tolerance(T)) )
+ ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE, (L)(R)(::boost::math::fpc::percent_tolerance(T)) )
 #define BOOST_CHECK_CLOSE( L, R, T ) BOOST_TEST_TOOL_IMPL( 0, \
- ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE, (L)(R)(::boost::test_tools::percent_tolerance(T)) )
+ ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE, (L)(R)(::boost::math::fpc::percent_tolerance(T)) )
 #define BOOST_REQUIRE_CLOSE( L, R, T ) BOOST_TEST_TOOL_IMPL( 0, \
- ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE, (L)(R)(::boost::test_tools::percent_tolerance(T)) )
+ ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE, (L)(R)(::boost::math::fpc::percent_tolerance(T)) )
 
 //____________________________________________________________________________//
 
 #define BOOST_WARN_CLOSE_FRACTION(L, R, T) BOOST_TEST_TOOL_IMPL( 0, \
- ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE_FRACTION, (L)(R)(::boost::test_tools::fraction_tolerance(T)) )
+ ::boost::test_tools::check_is_close, "", WARN, CHECK_CLOSE_FRACTION, (L)(R)(T) )
 #define BOOST_CHECK_CLOSE_FRACTION(L, R, T) BOOST_TEST_TOOL_IMPL( 0, \
- ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE_FRACTION, (L)(R)(::boost::test_tools::fraction_tolerance(T)) )
+ ::boost::test_tools::check_is_close, "", CHECK, CHECK_CLOSE_FRACTION, (L)(R)(T) )
 #define BOOST_REQUIRE_CLOSE_FRACTION(L,R,T) BOOST_TEST_TOOL_IMPL( 0, \
- ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE_FRACTION, (L)(R)(::boost::test_tools::fraction_tolerance(T)) )
+ ::boost::test_tools::check_is_close, "", REQUIRE, CHECK_CLOSE_FRACTION, (L)(R)(T) )
 
 //____________________________________________________________________________//
 

Modified: trunk/boost/test/unit_test.hpp
==============================================================================
--- trunk/boost/test/unit_test.hpp (original)
+++ trunk/boost/test/unit_test.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/unit_test_log.hpp
==============================================================================
--- trunk/boost/test/unit_test_log.hpp (original)
+++ trunk/boost/test/unit_test_log.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

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 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2003-2008.
+// (C) Copyright Gennadiy Rozental 2003-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)

Modified: trunk/boost/test/unit_test_monitor.hpp
==============================================================================
--- trunk/boost/test/unit_test_monitor.hpp (original)
+++ trunk/boost/test/unit_test_monitor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/unit_test_suite.hpp
==============================================================================
--- trunk/boost/test/unit_test_suite.hpp (original)
+++ trunk/boost/test/unit_test_suite.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/unit_test_suite_impl.hpp
==============================================================================
--- trunk/boost/test/unit_test_suite_impl.hpp (original)
+++ trunk/boost/test/unit_test_suite_impl.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/utils/algorithm.hpp
==============================================================================
--- trunk/boost/test/utils/algorithm.hpp (original)
+++ trunk/boost/test/utils/algorithm.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/assign_op.hpp
==============================================================================
--- trunk/boost/test/utils/assign_op.hpp (original)
+++ trunk/boost/test/utils/assign_op.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/basic_cstring/basic_cstring.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/basic_cstring.hpp (original)
+++ trunk/boost/test/utils/basic_cstring/basic_cstring.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp (original)
+++ trunk/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp (original)
+++ trunk/boost/test/utils/basic_cstring/bcs_char_traits.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/basic_cstring/compare.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/compare.hpp (original)
+++ trunk/boost/test/utils/basic_cstring/compare.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/basic_cstring/io.hpp
==============================================================================
--- trunk/boost/test/utils/basic_cstring/io.hpp (original)
+++ trunk/boost/test/utils/basic_cstring/io.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/callback.hpp
==============================================================================
--- trunk/boost/test/utils/callback.hpp (original)
+++ trunk/boost/test/utils/callback.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/class_properties.hpp
==============================================================================
--- trunk/boost/test/utils/class_properties.hpp (original)
+++ trunk/boost/test/utils/class_properties.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/utils/custom_manip.hpp
==============================================================================
--- trunk/boost/test/utils/custom_manip.hpp (original)
+++ trunk/boost/test/utils/custom_manip.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/fixed_mapping.hpp
==============================================================================
--- trunk/boost/test/utils/fixed_mapping.hpp (original)
+++ trunk/boost/test/utils/fixed_mapping.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2008.
+// (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)

Modified: trunk/boost/test/utils/foreach.hpp
==============================================================================
--- trunk/boost/test/utils/foreach.hpp (original)
+++ trunk/boost/test/utils/foreach.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,5 +1,5 @@
 // (C) Copyright Eric Niebler 2004-2005
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp (original)
+++ trunk/boost/test/utils/iterator/ifstream_line_iterator.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/iterator/input_iterator_facade.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/input_iterator_facade.hpp (original)
+++ trunk/boost/test/utils/iterator/input_iterator_facade.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/iterator/istream_line_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/istream_line_iterator.hpp (original)
+++ trunk/boost/test/utils/iterator/istream_line_iterator.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/iterator/token_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/iterator/token_iterator.hpp (original)
+++ trunk/boost/test/utils/iterator/token_iterator.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)

Modified: trunk/boost/test/utils/lazy_ostream.hpp
==============================================================================
--- trunk/boost/test/utils/lazy_ostream.hpp (original)
+++ trunk/boost/test/utils/lazy_ostream.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2008.
+// (C) Copyright Gennadiy Rozental 2008-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)
@@ -35,6 +35,8 @@
 
 class lazy_ostream {
 public:
+ virtual ~lazy_ostream() {}
+
     static lazy_ostream& instance() { static lazy_ostream inst; return inst; }
 
     friend std::ostream& operator<<( std::ostream& ostr, lazy_ostream const& o ) { return o( ostr ); }
@@ -47,12 +49,6 @@
 protected:
     explicit lazy_ostream( bool empty = true ) : m_empty( empty ) {}
 
- // protected destructor to make sure right one is called
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-public:
-#endif
- BOOST_TEST_PROTECTED_VIRTUAL ~lazy_ostream() {}
-
 private:
     // Data members
     bool m_empty;
@@ -60,43 +56,54 @@
 
 //____________________________________________________________________________//
 
-template<typename T>
+template<typename PrevType, typename T>
 class lazy_ostream_impl : public lazy_ostream {
 public:
- lazy_ostream_impl( lazy_ostream const& prev, T value )
+ lazy_ostream_impl( PrevType const& prev, T const& value )
     : lazy_ostream( false )
     , m_prev( prev )
     , m_value( value )
- {}
-private:
+ {
+ }
+
     virtual std::ostream& operator()( std::ostream& ostr ) const
     {
         return m_prev(ostr) << m_value;
     }
-
+private:
     // Data members
- lazy_ostream const& m_prev;
- T m_value;
+ PrevType m_prev;
+ T const& m_value;
 };
 
 //____________________________________________________________________________//
 
 template<typename T>
-inline lazy_ostream_impl<T const&>
+inline lazy_ostream_impl<lazy_ostream,T>
 operator<<( lazy_ostream const& prev, T const& v )
 {
- return lazy_ostream_impl<T const&>( prev, v );
+ return lazy_ostream_impl<lazy_ostream,T>( prev, v );
+}
+
+//____________________________________________________________________________//
+
+template<typename PrevPrevType, typename TPrev, typename T>
+inline lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,T>
+operator<<( lazy_ostream_impl<PrevPrevType,TPrev> const& prev, T const& v )
+{
+ typedef lazy_ostream_impl<PrevPrevType,TPrev> PrevType;
+ return lazy_ostream_impl<PrevType,T>( prev, v );
 }
 
 //____________________________________________________________________________//
 
 #if BOOST_TEST_USE_STD_LOCALE
 
-template<typename R,typename S>
-inline lazy_ostream_impl<R& (BOOST_TEST_CALL_DECL *)(S&)>
-operator<<( lazy_ostream const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
+template<typename PrevPrevType, typename TPrev,typename R,typename S>
+inline lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,R& (BOOST_TEST_CALL_DECL *)(S&)>
+operator<<( lazy_ostream_impl<PrevPrevType,TPrev> const& prev, R& (BOOST_TEST_CALL_DECL *man)(S&) )
 {
- return lazy_ostream_impl<R& (BOOST_TEST_CALL_DECL *)(S&)>( prev, man );
+ return lazy_ostream_impl<lazy_ostream_impl<PrevPrevType,TPrev>,R& (BOOST_TEST_CALL_DECL *)(S&)>( prev, man );
 }
 
 //____________________________________________________________________________//

Modified: trunk/boost/test/utils/named_params.hpp
==============================================================================
--- trunk/boost/test/utils/named_params.hpp (original)
+++ trunk/boost/test/utils/named_params.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/nullstream.hpp
==============================================================================
--- trunk/boost/test/utils/nullstream.hpp (original)
+++ trunk/boost/test/utils/nullstream.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2002-2008.
+// (C) Copyright Gennadiy Rozental 2002-2010.
 // (C) Copyright Daryle Walker 2000-2001.
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at

Modified: trunk/boost/test/utils/rtti.hpp
==============================================================================
--- trunk/boost/test/utils/rtti.hpp (original)
+++ trunk/boost/test/utils/rtti.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/argument.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/argument.hpp (original)
+++ trunk/boost/test/utils/runtime/argument.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/cla/argument_factory.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argument_factory.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/argument_factory.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/argv_traverser.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argv_traverser.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/argv_traverser.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/argv_traverser.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argv_traverser.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/argv_traverser.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/argv_traverser.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/argv_traverser.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/argv_traverser.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/basic_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/basic_parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/basic_parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/char_parameter.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/char_parameter.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/char_parameter.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/char_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/char_parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/char_parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/char_parameter.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/char_parameter.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/char_parameter.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Permission to copy, use, modify, sell and distribute this software
 // is granted provided this copyright notice appears in all copies.
 // This software is provided "as is" without express or implied warranty,

Modified: trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/dual_name_parameter.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/dual_name_parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/dual_name_parameter.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/fwd.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/fwd.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/fwd.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/id_policy.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/id_policy.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/id_policy.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/id_policy.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/id_policy.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/id_policy.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/id_policy.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/id_policy.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/id_policy.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/iface/argument_factory.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/iface/id_policy.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/modifier.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/modifier.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/modifier.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/named_parameter.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/named_parameter.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/named_parameter.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/named_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/named_parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/named_parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/named_parameter.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/named_parameter.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/named_parameter.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/parser.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parser.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/parser.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/parser.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parser.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/parser.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/parser.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/parser.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/parser.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/positional_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/positional_parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/positional_parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/typed_parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/typed_parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/typed_parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/validation.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/validation.cpp (original)
+++ trunk/boost/test/utils/runtime/cla/validation.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/validation.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/validation.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/validation.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/validation.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/validation.ipp (original)
+++ trunk/boost/test/utils/runtime/cla/validation.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/value_generator.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/value_generator.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/value_generator.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/cla/value_handler.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/cla/value_handler.hpp (original)
+++ trunk/boost/test/utils/runtime/cla/value_handler.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/config.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/config.hpp (original)
+++ trunk/boost/test/utils/runtime/config.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/configuration.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/configuration.hpp (original)
+++ trunk/boost/test/utils/runtime/configuration.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/env/environment.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/environment.cpp (original)
+++ trunk/boost/test/utils/runtime/env/environment.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/env/environment.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/environment.hpp (original)
+++ trunk/boost/test/utils/runtime/env/environment.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/env/environment.ipp
==============================================================================
--- trunk/boost/test/utils/runtime/env/environment.ipp (original)
+++ trunk/boost/test/utils/runtime/env/environment.ipp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/env/fwd.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/fwd.hpp (original)
+++ trunk/boost/test/utils/runtime/env/fwd.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/env/modifier.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/modifier.hpp (original)
+++ trunk/boost/test/utils/runtime/env/modifier.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/env/variable.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/env/variable.hpp (original)
+++ trunk/boost/test/utils/runtime/env/variable.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/file/config_file.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file.cpp (original)
+++ trunk/boost/test/utils/runtime/file/config_file.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/file/config_file.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file.hpp (original)
+++ trunk/boost/test/utils/runtime/file/config_file.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/file/config_file_iterator.cpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file_iterator.cpp (original)
+++ trunk/boost/test/utils/runtime/file/config_file_iterator.cpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/file/config_file_iterator.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/file/config_file_iterator.hpp (original)
+++ trunk/boost/test/utils/runtime/file/config_file_iterator.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (C) Copyright Gennadiy Rozental 2005-2010.
 // Use, modification, and distribution are subject to 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)

Modified: trunk/boost/test/utils/runtime/fwd.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/fwd.hpp (original)
+++ trunk/boost/test/utils/runtime/fwd.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/interpret_argument_value.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/interpret_argument_value.hpp (original)
+++ trunk/boost/test/utils/runtime/interpret_argument_value.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/parameter.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/parameter.hpp (original)
+++ trunk/boost/test/utils/runtime/parameter.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/trace.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/trace.hpp (original)
+++ trunk/boost/test/utils/runtime/trace.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/runtime/validation.hpp
==============================================================================
--- trunk/boost/test/utils/runtime/validation.hpp (original)
+++ trunk/boost/test/utils/runtime/validation.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/setcolor.hpp
==============================================================================
--- trunk/boost/test/utils/setcolor.hpp (original)
+++ trunk/boost/test/utils/setcolor.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2009.
+// (C) Copyright Gennadiy Rozental 2009-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)

Modified: trunk/boost/test/utils/trivial_singleton.hpp
==============================================================================
--- trunk/boost/test/utils/trivial_singleton.hpp (original)
+++ trunk/boost/test/utils/trivial_singleton.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2005-2008.
+// (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)

Modified: trunk/boost/test/utils/wrap_stringstream.hpp
==============================================================================
--- trunk/boost/test/utils/wrap_stringstream.hpp (original)
+++ trunk/boost/test/utils/wrap_stringstream.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2002-2008.
+// (C) Copyright Gennadiy Rozental 2002-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)

Modified: trunk/boost/test/utils/xml_printer.hpp
==============================================================================
--- trunk/boost/test/utils/xml_printer.hpp (original)
+++ trunk/boost/test/utils/xml_printer.hpp 2010-05-15 22:45:31 EDT (Sat, 15 May 2010)
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2004-2008.
+// (C) Copyright Gennadiy Rozental 2004-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)


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk