Martin Hořeňovský
ab30621138
Fix stringifying static array of unsigned chars
...
The fix leaves an open question: should we keep treating refs
to static array of chars as strings, or should we instead
use `strnlen` to check if it is null-terminated within the buffer
Fixes #1238
2018-04-06 11:43:12 +02:00
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
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
jsc
8b78087412
Fix bug in WithinAbs::match() and add tests for it
2018-03-21 13:47:12 +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
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ý
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ý
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ý
c0267e5c20
Add test for overriding the fallback stringifier
2018-02-15 16:06:35 +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
Martin Hořeňovský
681f5daa13
Update approval tests
2018-02-08 15:00:56 +01:00
Martin Hořeňovský
126850e76b
Prefer operator<< to range-based stringification
...
Fixes #1172
2018-02-01 14:07:23 +01:00
Phil Nash
ca2455e6e6
Fixed NoAssertions warning
2018-01-26 16:52:28 +00:00
Martin Hořeňovský
8d854c689b
Provide useful and unambigous stringification for static arrays
2018-01-14 18:06:43 +01:00
Martin Hořeňovský
de36b2ada6
Fix compilation for types where relops don't return bool
...
Closes #1147
2018-01-12 15:49:56 +01:00
Phil Nash
8be1df243e
Added test for stringifying std::arrays
2018-01-04 10:52:55 +00:00
Phil Nash
32eb90b9bd
Fix stringifying of unknown enums
2018-01-04 10:21:52 +00:00
Phil Nash
e41e8e8384
Added tests for stringifying map and set
2018-01-04 10:03:08 +00:00
Pfiffikus
ed33e9787e
Update MessageTests.cpp
...
typo corrected
2017-12-09 20:51:56 +01:00
Martin Hořeňovský
495d2458e0
Add UnorderedEqualsMatcher for vectors
...
Closes #1093
2017-12-07 19:05:00 +01:00
Martin Hořeňovský
0c122c135d
Add constructor arg checking to WithinAbsMatcher
...
Also tests :-)
2017-12-06 15:42:03 +01:00
Phil Nash
7c5a21fb7d
Added clog test
2017-12-05 17:48:15 +00:00
Martin Hořeňovský
8c32d0b644
Add more weird chrono::duration stringification tests
2017-11-28 21:47:06 +01:00
Martin Hořeňovský
28d1955ea8
Also test Approx template constructor
2017-11-28 21:29:34 +01:00
Martin Hořeňovský
73a1623eaf
Re-enable 2 string tests
2017-11-25 18:38:18 +01:00
Martin Hořeňovský
401ad7a189
Remove isTrue, alwaysTrue, alwaysFalse
...
isTrue and alwaysFalse were replaced by (void)0, 0 inspired by doctest
alwaysTrue was replaced by warning suppression
2017-11-22 16:03:45 +01:00
Phil Nash
8da845810d
Rebased due to whitespace changes
2017-11-17 15:46:57 +00:00
Martin Hořeňovský
9796846ad0
Workaround libstdc++-4.8 regex issue in approval tests
2017-11-13 18:19:40 +01:00
Phil Nash
74d3dfd4cc
All tests files have .tests.cpp suffix. Also moved tests out of TestMain.cpp and moved up a level
2017-11-13 16:03:27 +00:00
Phil Nash
e34754e433
Split SelfTest test files into Usage and Introspective varieties
...
Usage: just exercises Catch. The tests are over arbitrary date/ types
Introspective: Tests parts of Catch itself.
2017-11-13 15:38:52 +00:00
Martin Hořeňovský
55b71bebf1
Add tests for case insensitive string matching
2017-11-13 15:46:33 +01:00
Martin Hořeňovský
b0857e846f
Provide a regex matcher against std::string
...
Related to #1040
2017-11-13 15:35:31 +01:00
Phil Nash
3537b7858f
Removed vestigal ComparatorT template arg to MatcherBase
2017-11-13 10:08:48 +00:00
Martin Hořeňovský
b74d4ca96d
Add compilation test for #1027
2017-11-13 10:07:06 +01:00
Martin Hořeňovský
8dbaac61ff
Final set of fixes for floating matchers approvals
2017-11-12 11:49:36 +01:00
Martin Hořeňovský
030321e3e0
Add NAN test for Approx
2017-11-10 18:48:45 +01:00
Martin Hořeňovský
0b1f1b1003
Add ULP and margin matcher
...
Closes #1074
2017-11-10 18:33:00 +01:00
Martin Hořeňovský
22ac9d2184
Approx cleanup: More tests, INFINITY handling, etc
2017-11-01 07:30:11 +01:00
Martin Hořeňovský
11f716f28d
Make Approx::margin inclusive
...
Fixes #952 , related to #980
2017-10-31 14:49:00 +01:00
Phil Nash
05b1ca2884
Fixed expansion of _FALSE binary expression
...
- see #1051
2017-10-13 19:45:19 +01:00
Phil Nash
c2b7bd15c0
Changed rhs expression capture from universal ref to const ref.
...
- addresses #1027
2017-10-13 14:16:14 +01:00
Martin Hořeňovský
17cdf20968
Mark part of std::chrono stringification tests nonportable
2017-10-09 14:56:23 +02:00
Martin Hořeňovský
760a25e813
Fix baseline for file where std::pair stringification is not enabled
2017-10-09 13:12:50 +02:00
Martin Hořeňovský
79b405fd3f
Add stringification for std::chrono::{duration,time_point}
...
Also hides std::chrono, std::pair and std::chrono::* behind
new configuration macros, CATCH_CONFIG_ENABLE_*_STRINGMAKER
to avoid dragging in <utility>, <tuple> and <chrono> in common
path, unless requested.
2017-10-09 13:03:29 +02:00
Martin Hořeňovský
9aa96712ae
Sweep out some extra warnings
...
Swept:
`-Wpadded` in some places (where it caused extra size, instead of just
saying "hey, we padded struct at the end to align, just as standard says")
`-Wweak-vtables` everywhere (Clang)
`-Wexit-time-destructors` everywhere (Clang)
`-Wmissing-noreturn` everywhere (Clang)
The last three are enabled for Clang compilation going forward.
Also enabled `-Wunreachable-code` for Clang and GCC
2017-09-07 17:25:15 +02:00
Phil Nash
6105282c4f
Removed function pointer comparison test from approvals as it has different serilaisation behaviour in MSVC
2017-09-07 15:04:30 +01:00
Martin Hořeňovský
b000411434
Stop accepting non-const comparison operators
...
A) non-const comparison operators should not exist and should not be
encouraged
B) The logic breaks comparing function pointers certain way
C) It was inconsistent anyway, as it only applied to `==` and `!=`
Closes #925
2017-09-06 15:01:03 +02:00
Martin Hořeňovský
aef2e4d9e7
Update baselines
2017-09-02 20:29:05 +02:00
Martin Hořeňovský
ab5d176195
Fix/disable failing approval tests
2017-09-02 10:51:19 +02:00