|
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