[/
 / Copyright (c) 2014 Mathieu Champlon
 /
 / 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)
 /]

[section Changelog]

[section 1.3.2]
Released 19 June 2020

* Removed boost deprecation warnings
* Fixed various compiler warnings
* Added CMake build files

[endsect]

[section 1.3.1]
Released 7 March 2019

* Fixed mocking of a function returning a reference for gcc 4.1
* Added MOCK_NO_AUTO_PTR to deactivate std::auto_ptr support
* Added [@https://github.com/philsquared/Catch Catch] integration
* Fixed move-only type argument in actions
* Fixed move-only type support in constraints
* Added support for dereferencing in mock::equal
* Added support for movable objects in mock::retrieve
* Fixed deprecation warning about std::uncaught_exception in c++17 for msvc

[endsect]

[section 1.3.0]
Released 17 July 2016

* Fixed MOCK_FUNCTOR compilation with VS2015
* Removed round parenthesis in signature support for compilers without variadic macros

[endsect]

[section 1.2.8]
Released 8 February 2016

* Fixed missing thread synchronization in mock::sequence
* Fixed build errors with Boost 1.59
* Fixed multiply defined symbol definition for MOCK_FUNCTION included from several translation units
* Fixed extra semicolon warning with BOOST_GLOBAL_FIXTURE prior to Boost 1.59
* Added logging support for boost::optional

[endsect]

[section 1.2.7]
Released 25 April 2015

* Dropped support for obsolete Boost.Phoenix V2
* Added support for multiple parameters constraints
* Added inline to generated MOCK_FUNCTION
* Documented limitation concerning MOCK_METHOD_TPL
* Fixed mocking protected member function
* Document how actions store data by copy

[endsect]

[section 1.2.6]
Released 24 May 2014

* Added MOCK_THREAD_SAFE to enable thread safety

[endsect]

[section 1.2.5]
Released 10 February 2014

* Added workaround for when msvc defines small and near macros
* Added support for using non default calling conventions
* Changed MOCK_DESTRUCTOR which now requires '~' to preceed the class name
* Changed MOCK_\*CONVERSION_OPERATOR\* which now require an extra first argument 'operator'
* Added version.hpp with the library version number

[endsect]

[section 1.2.4]
Released 14 August 2013

* Reworked MOCK_CONSTRAINT to be able to provide names to parameters
* Added MOCK_NO_VARIADIC_MACROS to deactivate variadic macros support
* Added support for movable only types as parameters
* Added logging support for std::unique_ptr, std::shared_ptr and std::weak_ptr
* Added move support in actions

[endsect]

[section 1.2.3]
Released 20 May 2013

* Added support for C++11 lambdas as constraints
* Return actions now accept by copy types derived from abstract base types
* Added MOCK_CONSTRAINT helper macro
* Added support for several sequences in 'in'
* Added support for nullptr as constraint
* Added mock::close, mock::close_fraction, mock::small and mock::near constraints

[endsect]

[section 1.2.2]
Released 9 March 2013

* Added variadic macro support for MOCK_BASE_CLASS
* Added variadic macro support for MOCK_FUNCTION, MOCK_FUNCTOR and the MOCK_METHOD family
* Added round parenthesis support for signatures for MOCK_FUNCTION, MOCK_FUNCTOR and the MOCK_METHOD family
* Added MOCK_CONVERSION_OPERATOR_TPL, MOCK_CONST_CONVERSION_OPERATOR_TPL and MOCK_NON_CONST_CONVERSION_OPERATOR_TPL
* Added MOCK_FUNCTOR_TPL

[endsect]

[section 1.2.1]
Released 24 January 2013

* Fixed boost::lambda_functor forward declaration
* Added test for whether BOOST_RESULT_OF_NUM_ARGS is large enough
* Removed default error policy keeping only Boost.Test integration
* Refactored error policy to simplify test frameworks integration
* Changed C-string constraint short-cut behaviour to compare strings instead of pointers
* Fixed potential conflict with macro max
* Fixed missing file name and line number in logs
* Moved mock::exception in its own header so that it can be included without the error policy
* Fixed type name extraction involving template classes

[endsect]

[section 1.2.0]
Released 25 May 2012

* Changed MOCK_FUNCTOR syntax to MOCK_FUNCTOR( functor, signature )
* Changed MOCK_EXPECT syntax to MOCK_EXPECT( object.tag ) and MOCK_EXPECT( functor )
* Changed MOCK_RESET syntax to MOCK_RESET( object.tag ) and MOCK_RESET( functor )
* Changed MOCK_VERIFY syntax to MOCK_VERIFY( object.tag ) and MOCK_VERIFY( functor )
* Replaced object.verify() with mock::verify( object )
* Replaced object.reset() with mock::reset( object )
* Added MOCK_FUNCTION, MOCK_STATIC_METHOD and MOCK_STATIC_METHOD_TPL
* Removed all std::string to spare unnecessary memory allocations
* Wrapped constraints parameters with boost::addressof where needed in order to support types with overloaded operator &
* Fixed limitation on operator() of a custom constraint which is no longer required to be const
* Added support for mock::reset( functor ) and mock::verify( functor )
* Renamed basic_error_policy to default_error_policy
* Added checkpoint notification to error policy
* Added specialization to log unsigned chars as integers
* Fixed a bug that caused an object to remain invalid forever after being invalid and verified once
* Added support for mocking constructors
* Fixed phoenix and lambda functors logging in the presence of their operators & and <<
* Fixed a crash when resetting self-referenced object

[endsect]

[section 1.1.1]
Released 10 July 2011

* Added support for boost::cref and boost::ref in built-in constraints and mock::format
* Removed MOCK_METHOD_TPL for using non compliant code
* Added a mock::affirm constraint as evaluating ''actual'' as a boolean
* Fixed a bug preventing non-const pointers to be logged properly
* Added support for logging std::auto_ptr, boost::shared_ptr and boost::weak_ptr
* Added missing check for BOOST_FT_MAX_ARITY when MOCK_MAX_ARGS was set to 21 or higher
* Fixed a bug with const smart pointers as first argument to MOCK_EXPECT being invalid
* Fixed a crash with Boost.Test when destroying failed static mock objects

[endsect]

[section 1.1.0 ]
Released 23 March 2011

* Added Boost.Test log info when an expectation is fulfilled
* Fixed a bug preventing to increase the maximum number of arguments of a mocked method using MOCK_MAX_ARGS
* Changed the default value for MOCK_MAX_ARGS to 9 instead of 10
* Renamed mock::constraint to mock::call
* Added custom constraints logging customization in the same way as parameters
* Changed the way the default logging of constraints and parameters can be overridden to use a serialization operator to a mock::stream
* Enhanced logging by lazily serializing constraints and parameters
* Added the possibility to perform conversions when logging constraints and parameters by defining MOCK_USE_CONVERSIONS

[endsect]

[section 1.0.1]
Released 16 June 2010

* Destroying a sequence does not remove the associated order call enforcement any more
* Added detection for a pointer in mock::assign to dereference it before performing the assignment
* Renamed error policies no_match method to unexpected_call
* Made boost_test_error_policy throw a mock::exception extending boost::execution_aborted (helpful in order to filter on exceptions)
* Fully qualified function calls to prevent unwanted [@http://en.wikipedia.org/wiki/Argument_dependent_name_lookup ADL]
* Added extra namespace level to protect from unwanted [@http://en.wikipedia.org/wiki/Argument_dependent_name_lookup ADL] with operator<<
* Fixed a crash due to [@http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.12 static initialization order fiasco] on some platforms
* Added support for mocking conversion operators
* Added [@http://www.boost.org/doc/libs/release/libs/concept_check/concept_check.htm concept checks] for better diagnostic upon compilation error
* Made template parameter names more user friendly for better diagnostic upon compilation error
* Fixed expectation argument types to match signature
* Shared parent names among their expectations when a mock::object is used as a base class
* Fixed maximum number of mocked methods arguments
* Prevented a crash when mocking a destructor and throwing out of the object scope

[endsect]

[endsect]
