Martin Hořeňovský
1ca8f43b01
Add PredicateMatcher that takes an arbitrary predicate functions
...
Also adds `Predicate` helper function to create `PredicateMatcher`.
Because of limitations in type inference it needs to be explicitly
typed, like so
`Predicate<std::string>([](std::string const& str) { ... })`.
It also takes an optional second argument for description of the
predicate.
It is possible to infer the argument with sufficient TMP, see
https://stackoverflow.com/questions/43560492/how-to-extract-lambdas-return-type-and-variadic-parameters-pack-back-from-gener/43561563#43561563
but I don't think that the magic is worth introducing ATM.
Closes #1236
2018-04-04 11:14:19 +02:00
David Aue
dfb83f20e9
Add stringification methods for CLR objects
2018-04-03 19:06:16 +02:00
Alexis Jeandet
319bddd5b8
Small fix to generate pc with include path
...
In CMake module both include and include/catch are added includes
lookup path. Examples are built with #include "catch.hpp" not
#include "catch/catch.hpp". This should be the same with pkg-config.
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2018-04-02 21:38:17 +02:00
Martin Hořeňovský
931441251e
Add an early bailout out of benchmark timer calibration
...
Specific platforms (e.g. TDM-GCC) can have terrible timer resolution,
and our checking code will then loop for an inordinate amount of time.
This change will make it so that the calibration gives up after 3
seconds and just uses the already measured values.
This leaves one open question, how to signal that the resolution
is terrible and benchmarking should not happen?
Fixes #1237
2018-04-01 22:50:39 +02:00
Martin Hořeňovský
ea1f326261
Fix potential for false negative CI results on coverage collection
2018-04-01 14:36:55 +02:00
Mike
3641706923
Leak less GCC warnings suppressions out of Catch
2018-04-01 13:57:05 +02:00
Martin Hořeňovský
3b801c4fda
Modify XML encoder to hex-encode invalid UTF-8 sequences
...
There are still some holes, e.g. we leave surrogate pairs be
even though they are not a part of valid UTF-8, but this might
be for the better -- WTF-8 does support surrogate pairs inside
text.
Closes #1207
2018-03-27 16:49:14 +02:00
Martin Hořeňovský
e11508b48a
Disable PIP's version check on AppVeyor
2018-03-22 15:19:09 +01:00
Zsolt Parragi
886d799b79
Fix clang-tidy 6 diagnostic about virtual call in destructor
2018-03-21 17:05:15 +01:00
jsc
8b78087412
Fix bug in WithinAbs::match() and add tests for it
2018-03-21 13:47:12 +01:00
Martin Hořeňovský
6c99b04c87
Allow VS 2017 failures
...
VS 2017 has an annoying bug, where the result of `__FILE__`
substitution is always lower-cased. This breaks approval tests
and I am not quite convinced that we should fully normalized paths
to accomodate this bug.
We need to remember to undo this in the future though.
2018-03-21 13:41:20 +01:00
Martin Hořeňovský
0a34cc201e
v2.2.1
2018-03-11 12:04:28 +01:00
Martin Hořeňovský
11c89a5f7d
Bring in Clara v1.1.4
...
This fixes #1214
2018-03-09 10:37:56 +01:00
Martin Hořeňovský
dc3e7f9cf7
Fix incorrectly clamped return value
...
Fixes #1215
2018-03-09 10:00:55 +01:00
Martin Hořeňovský
d14b7563c2
v2.2.0
2018-03-07 11:06:15 +01:00
Martin Hořeňovský
a3d3a633b2
Don't build dev-appveyor*
branches on TravisCI
2018-03-07 10:53:09 +01:00
Martin Hořeňovský
8d4796309f
Merge pull request #1206 from zemasoft/master
...
Introduce support for DJGPP cross compiler
2018-03-07 10:47:18 +01:00
Martin Hořeňovský
552589f25b
Merge branch 'master' into master
2018-03-07 10:37:50 +01:00
Tomas Zeman
95c849f613
Introduce support for DJGPP cross compiler
...
DJGPP cross compiler is targeting DOS which does not support POSIX
signals. Probably for the same reason (targeting DOS) this compiler
does not support wide characters.
2018-03-07 10:35:32 +01:00
Tomas Zeman
352853ed7e
Introduce conditional wchar_t (and std::wstring) support
...
The support is turned on by default but the user might need to be able
to turn it off which is now possible by defining CATCH_CONFIG_NO_WCHAR.
2018-03-07 10:35:31 +01:00
Josh Soref
b11175548a
Fixup various spelling errors ( #1208 )
2018-03-07 10:08:35 +01:00
Bastian Dörig
d38f782995
Ensure Catch2ConfigVersion.cmake is installed properly
...
The old version would lead to error when Catch was installed
as a subproject. The file would be written to the subproject's
build directory and then would not be installed properly.
2018-03-07 09:42:58 +01:00
Martin Hořeňovský
dc8a8e6371
Speed up AppVeyor build times
...
* Examples are no longer built for all images
* Coverage is no longer collected from every build
* The number of configurations is reduced
2018-03-06 22:46:49 +01:00
Martin Hořeňovský
9d1858b195
Simplify internal configuration of POSIX signals
2018-03-06 17:58:37 +01:00
Martin Hořeňovský
1d1f8dc992
Stop installing lcov in builds without COVERAGE=1
2018-03-06 15:38:22 +01:00
Martin Hořeňovský
1466686ade
Speed up TravisCI build
...
* Examples are no longer built on all travis images
* Coverage is no longer collected from all travis images
* Valgrind is no longer used with all travis images
This should greatly reduce the amount of compiling, downloading
binaries and general work the common images do.
2018-03-06 15:24:12 +01:00
Martin Hořeňovský
93db01c647
Fix C++14 toggle for OSX build
2018-03-05 15:09:25 +01:00
Martin Hořeňovský
2e285b9579
Use char const * const * for Session::run
...
Needed to embed newer version of Clara
Closes #1178
Closes #1031
2018-03-04 17:58:27 +01:00
Martin Hořeňovský
d2ddb997a7
Cleanup for performance reasons
...
* Eliminated some copies
* Made makeTestCase fit into 4 arguments -- avoids spills on Win64
* Made string literals into StringRef literals
2018-03-02 16:24:35 +01:00
Tomas Zeman
865d5f59b4
Fix 'defined but not used' warning
...
The warning occurred when !CATCH_CONFIG_WINDOWS_SEH
&& !CATCH_CONFIG_POSIX_SIGNALS.
2018-03-01 13:37:23 +01:00
Martin Hořeňovský
05cd05743a
Provide a public method to get StringRef's underlying pointer
...
This allows reducing the amount of friends needed for its interface
and some extra tricks later.
The bad part is that the pointer can become invalidated via
calls to other StringRef's public methods, but c'est la vie.
2018-02-28 22:49:00 +01:00
Martin Hořeňovský
950ccf4749
StringRef appends itself to std::string efficiently
2018-02-28 16:02:25 +01:00
Martin Hořeňovský
cf4b7eead9
Document CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS macro
...
Also fix how it can be disabled.
2018-02-25 21:22:38 +01:00
Martin Hořeňovský
7b6e49d795
Simplify logic selecting between signal handling/SEH/nothing
...
It was a bit of a mess previously
2018-02-23 14:56:07 +01:00
Martin Hořeňovský
0c5df42c28
Fix how windows.h is included in our files.
...
To prevent bugs with stitching system headers inside Catch,
the proxy header is responsible for guarding against inclusion
on Linux, rather than the includers.
Might be related to #1197
2018-02-23 12:40:12 +01:00
Martin Hořeňovský
4e57661919
StringRef will not take ownership when writing itself to stream
...
This also fixes some tests that were previously failing unnoticed - WTF?
2018-02-17 20:41:50 +01:00
Martin Hořeňovský
5a8f9c84dd
Fix doubled line in baselines
2018-02-16 22:10:39 +01:00
Martin Hořeňovský
f988b4eb35
Covered more translation possibilities
2018-02-15 19:58:49 +01:00
Martin Hořeňovský
c8d765a575
Cleanup some tests
2018-02-15 16:06:35 +01:00
Martin Hořeňovský
da783abee9
Move fallback conversion after enum-check
2018-02-15 16:06:35 +01:00
Martin Hořeňovský
c0267e5c20
Add test for overriding the fallback stringifier
2018-02-15 16:06:35 +01:00
Phil Nash
bb84f0788a
Removed unnecessary use of ostringstream from catch_enforce.h
2018-02-15 13:59:02 +00:00
Nils Deppe
e84768fff1
Add SpECTRE project to list of users.
2018-02-14 08:31:33 +01:00
Martin Hořeňovský
31673ee0ca
Document CATCH_CONFIG_DEFAULT_REPORTER macro
2018-02-11 18:10:28 +01:00
Martin Hořeňovský
34d7a33574
Add a way to change fallback stringifier
...
This allows reuse of projects existing stringification machinery
Closes #1024
2018-02-11 16:31:12 +01:00
Martin Hořeňovský
082c3b84bc
Fix typos in documentation
2018-02-10 22:16:32 +01:00
Martin Hořeňovský
ef2e112561
Disable POSIX signals for Emscripten
...
Related to #1114
2018-02-10 20:42:08 +01:00
Martin Hořeňovský
a90305f857
Add another known bug to limitations.md
...
Related to #1183
2018-02-10 13:51:33 +01:00
Martin Hořeňovský
543c9d3a67
Set patch coverage check to target 80%
2018-02-09 20:09:55 +01:00
dvirtz
ca8470fbad
https://github.com/catchorg/Catch2/issues/1175 - don't list hidden tests by default
2018-02-09 19:55:40 +01:00