Releases: rollbear/trompeloeil
v9
- Fixed bug with mock functions accepting
std::unique_ptr<>
by value. - signed/unsigned compilation warnings in expectations are attributed to correct file/line with clang++ and VisualStudio 2015
- Complete documentation overhaul. Now with:
- Cook book
- FAQ
- reference manual
- Better compilation error message when illegal argument is used in expectation.
- Addressed clang++ and VisualStudio warnings
v8
v7
-
Report error if live expectations remain when a mock object is destroyed
-
Reduced clutter in compilation errors
-
Allow mock objects to be templates. E.g.
template <typename T> struct mock { MAKE_MOCK1(func, void(T)); }; ... mock<int> m; REQUIRE_CALL(m, func(3));
Note that member function templates are still not supported.
v6
v5
-
Support for Visual Studio 2015 RC
-
5 parameter value matchers are included. These are (in namespace trompeloeil):
- ne(x) - not equal to x
- lt(x) - less than x
- le(x) - less than or equal to x
- gt(x) - greater than x
- ge(x) - greater than or equal to x
These are used in expectations as e.g.:
REQUIRE_CALL(obj, foo(ne(5)));
which matches calls to foo with a value not equal to 5.
-
Support and documenation for how to write custom matchers.
-
The function registered to set_reporter() now must accept
the source location as file, line instead of location as
a combined string. Apologies for breaking existing code,
but since this is more in line with how other frame works
refers to source code locations, it improves compatibility.
v4
compile time improvements and tracing and minor bugfix
-
Some compilations of g++ and clang++ gave undefined reference to
SFINAE value of is_equal_comparable<>. v3 does away with that. -
Improved compilation time performance. 20% drop in compilation time
has been seen in some test programs. -
Improved the compiler's chance to provide good warning messages
when values in expectations don't quite the types used in the
function signature (for example signed/unsigned mismatch.) -
Added support for tracing matching calls. This is an aid when
doing exploratory tests of legacy code. A trace can often
drastically reduce the time required to understand how the legacy
code works.To use it, create an object of a tracer type, for example:
TEST(atest) { trompeloeil::stream_tracer trace(std::cout); // normal test code follows }
compile time improvements and tracing
-
Improved compilation time performance. 20% drop in compilation time
has been seen in some test programs. -
Improved the compiler's chance to provide good warning messages
when values in expectations don't quite the types used in the
function signature (for example signed/unsigned mismatch.) -
Added support for tracing matching calls. This is an aid when
doing exploratory tests of legacy code. A trace can often
drastically reduce the time required to understand how the legacy
code works.To use it, create an object of a tracer type, for example:
TEST(atest) { trompeloeil::stream_tracer trace(std::cout); // normal test code follows }