summaryrefslogtreecommitdiffstats
path: root/googlemock/CHANGES
blob: 4328ece3d3afa9fd61ae6541a09d32089596bfcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Changes for 1.7.0:

* All new improvements in Google Test 1.7.0.
* New feature: matchers DoubleNear(), FloatNear(),
  NanSensitiveDoubleNear(), NanSensitiveFloatNear(),
  UnorderedElementsAre(), UnorderedElementsAreArray(), WhenSorted(),
  WhenSortedBy(), IsEmpty(), and SizeIs().
* Improvement: Google Mock can now be built as a DLL.
* Improvement: when compiled by a C++11 compiler, matchers AllOf()
  and AnyOf() can accept an arbitrary number of matchers.
* Improvement: when compiled by a C++11 compiler, matchers
  ElementsAreArray() can accept an initializer list.
* Improvement: when exceptions are enabled, a mock method with no
  default action now throws instead crashing the test.
* Improvement: added class testing::StringMatchResultListener to aid
  definition of composite matchers.
* Improvement: function return types used in MOCK_METHOD*() macros can
  now contain unprotected commas.
* Improvement (potentially breaking): EXPECT_THAT() and ASSERT_THAT()
  are now more strict in ensuring that the value type and the matcher
  type are compatible, catching potential bugs in tests.
* Improvement: Pointee() now works on an optional<T>.
* Improvement: the ElementsAreArray() matcher can now take a vector or
  iterator range as input, and makes a copy of its input elements
  before the conversion to a Matcher.
* Improvement: the Google Mock Generator can now generate mocks for
  some class templates.
* Bug fix: mock object destruction triggerred by another mock object's
  destruction no longer hangs.
* Improvement: Google Mock Doctor works better with newer Clang and
  GCC now.
* Compatibility fixes.
* Bug/warning fixes.

Changes for 1.6.0:

* Compilation is much faster and uses much less memory, especially
  when the constructor and destructor of a mock class are moved out of
  the class body.
* New matchers: Pointwise(), Each().
* New actions: ReturnPointee() and ReturnRefOfCopy().
* CMake support.
* Project files for Visual Studio 2010.
* AllOf() and AnyOf() can handle up-to 10 arguments now.
* Google Mock doctor understands Clang error messages now.
* SetArgPointee<> now accepts string literals.
* gmock_gen.py handles storage specifier macros and template return
  types now.
* Compatibility fixes.
* Bug fixes and implementation clean-ups.
* Potentially incompatible changes: disables the harmful 'make install'
  command in autotools.

Potentially breaking changes:

* The description string for MATCHER*() changes from Python-style
  interpolation to an ordinary C++ string expression.
* SetArgumentPointee is deprecated in favor of SetArgPointee.
* Some non-essential project files for Visual Studio 2005 are removed.

Changes for 1.5.0:

 * New feature: Google Mock can be safely used in multi-threaded tests
   on platforms having pthreads.
 * New feature: function for printing a value of arbitrary type.
 * New feature: function ExplainMatchResult() for easy definition of
   composite matchers.
 * The new matcher API lets user-defined matchers generate custom
   explanations more directly and efficiently.
 * Better failure messages all around.
 * NotNull() and IsNull() now work with smart pointers.
 * Field() and Property() now work when the matcher argument is a pointer
   passed by reference.
 * Regular expression matchers on all platforms.
 * Added GCC 4.0 support for Google Mock Doctor.
 * Added gmock_all_test.cc for compiling most Google Mock tests
   in a single file.
 * Significantly cleaned up compiler warnings.
 * Bug fixes, better test coverage, and implementation clean-ups.

 Potentially breaking changes:

 * Custom matchers defined using MatcherInterface or MakePolymorphicMatcher()
   need to be updated after upgrading to Google Mock 1.5.0; matchers defined
   using MATCHER or MATCHER_P* aren't affected.
 * Dropped support for 'make install'.

Changes for 1.4.0 (we skipped 1.2.* and 1.3.* to match the version of
Google Test):

 * Works in more environments: Symbian and minGW, Visual C++ 7.1.
 * Lighter weight: comes with our own implementation of TR1 tuple (no
   more dependency on Boost!).
 * New feature: --gmock_catch_leaked_mocks for detecting leaked mocks.
 * New feature: ACTION_TEMPLATE for defining templatized actions.
 * New feature: the .After() clause for specifying expectation order.
 * New feature: the .With() clause for specifying inter-argument
   constraints.
 * New feature: actions ReturnArg<k>(), ReturnNew<T>(...), and
   DeleteArg<k>().
 * New feature: matchers Key(), Pair(), Args<...>(), AllArgs(), IsNull(),
   and Contains().
 * New feature: utility class MockFunction<F>, useful for checkpoints, etc.
 * New feature: functions Value(x, m) and SafeMatcherCast<T>(m).
 * New feature: copying a mock object is rejected at compile time.
 * New feature: a script for fusing all Google Mock and Google Test
   source files for easy deployment.
 * Improved the Google Mock doctor to diagnose more diseases.
 * Improved the Google Mock generator script.
 * Compatibility fixes for Mac OS X and gcc.
 * Bug fixes and implementation clean-ups.

Changes for 1.1.0:

 * New feature: ability to use Google Mock with any testing framework.
 * New feature: macros for easily defining new matchers
 * New feature: macros for easily defining new actions.
 * New feature: more container matchers.
 * New feature: actions for accessing function arguments and throwing
   exceptions.
 * Improved the Google Mock doctor script for diagnosing compiler errors.
 * Bug fixes and implementation clean-ups.

Changes for 1.0.0:

 * Initial Open Source release of Google Mock