Releases: rollbear/trompeloeil
v29
v28
-
You can place expectations on types multiply inheriting several mock types.
-
Changed directory structure. "trompeloeil.hpp" now resides in directory "include". Self test programs "compiling_tests.cpp" and "thread_terror.cpp" resides in directory "test".
-
Major work on CMake support
make install
- works as before and also includes a package.- For CMake based project you can use
find_package(trompeloeil 28 REQUIRED)
and addtarget_link_libraries(<test_program> trompeloeil)
for your test target- use
add_subdirectory(trompeloeil)
if you prefer to track the trompeloeil git repository and also here addtarget_link_libraries(<test_program> trompeloeil)
for your test targetcmake -DBUILD_TYPE=Debug <trompeloeil-dir>
enables the test targetsself_test
andthread_terror
-DSANITIZE=true
enables ASAN and UBSAN forself_test
, and TSAN and UBSAN forthread_terror
v27
v26
-
Support for threaded semi-integration tests by allowing
queries if a sequence objectis_completed()
, if an
expectation objectis_satisfied()
or
is_saturated()
. -
Internal restructuring for reduced code size.
v25
-
Changed the expectation macros such that you can now have a
macro that expands into severalREQUIRE_CALL()
(and the likes) -
Fixed macro expansion bugs causing name clashes.
-
Documented clang++ 4 compatibility
-
Sequence objects are now movable and can, for example, be
returned from functions.
v24
v23
-
Matchers can be negated using the logical not operator !.
Example:
struct Mock { MAKE_MOCK1(func, void(const std::string&)); }; TEST(...) { using trompeloeil::re; // match regular expressions Mock m; REQUIRE_CALL(m, func(!re("^foo"))); // calls to func with strings not matching the regex /^foo/ ... }
-
Made sequence and its dependencies moveable. (mlimber)
This means it's now possible to use tha Almost Always Auto
style for sequence objects:auto seq = trompeloeil::sequence{};
-
Internal refactoring for substantially reduced compilation time.
v22
- Messages from violations of expectations now print collections member wise. This goes for
std::pair<>
,
std::tuple<>
and any data type for which a range based for loop is possible. This is done recursively for
the contents of the collections. - Worked around gcc bug 78446
- Cleaned up
-Wshadow
warnings from gcc
v21
- Tracing now includes return values and exceptions thrown.
For exception types inherited from std::exception, the
what()
string is printed. - Fixed a bug when a member function in a mocked class calls
a mocked function. This is now explicitly allowed, even
when an expectation recursively calls the same function
as a side effect. - Worked around VisualStudio 2015 update 3 issue where trailing
return type for lambdas is not respected in template deduction
context. This caused compilation errors when using matchers
in expectations to overloaded functions. - Worked around VisualStudio 2015 update 3 issue with evaluating
regex_search()
in trailing return type spec for auto deduced
string type.