Martin Hořeňovský
67914d8b86
Move back to static StringMaker<T>::convert
...
This avoids some breakage from the modernization
2017-05-21 23:40:05 +02:00
Martin Hořeňovský
0bb8e1247e
Merge branch 'master' of https://github.com/awglyde/Catch
2017-05-16 16:09:51 +02:00
Martin Hořeňovský
3dcc923351
v1.9.4
2017-05-16 13:59:29 +02:00
Martin Hořeňovský
589c40077b
Typo fix
...
Somehow I made that in 5ffc8a84cd
without noticing
2017-05-16 13:51:17 +02:00
Antonio Di Monaco
b8443e67da
Added Win32 UNICODE wmain support ( #903 )
...
* Added wmain support
* Added appveyor.yml wmain configuration
* Added wmain configuration flag to CMake
2017-05-11 13:00:03 +02:00
Martin Hořeňovský
f82e312552
Attempt at fixing compilation on OSX
...
Since I don't have actual access to OSX, this might be a tad optimistic.
2017-05-08 01:08:07 +02:00
Martin Hořeňovský
bffef1bffa
Fix alignment for Catch::Option
...
This is so much easier in C++11...
2017-05-08 00:59:44 +02:00
Martin Hořeňovský
7e14232924
Fix C4702 (unreachable code) in generators
...
Generators might get removed anyway, but at least compilation wont
trigger Wx on MSVC in the meantime.
2017-05-08 00:58:44 +02:00
Martin Hořeňovský
d7eb041ab5
Fix compilation on non-OSX platforms
2017-05-08 00:54:53 +02:00
Phil Nash
8c757cc542
Removed need for Error class to capture stream inserted strings into exceptions
2017-05-05 18:39:49 +01:00
Phil Nash
4c5af2089a
Added CATCH_ENFORCE (and updated CATCH_INTERNAL_ERROR to be stream based)
...
replaced all ad-hoc exceptions (where appropriate) with CATCH_ENFORCE or CATCH_INTERNAL_ERROR - no explicit ostringstreams.
2017-05-05 15:43:31 +01:00
Phil Nash
687437fcd1
converted IStreamingReporter to unique_ptr
2017-05-05 15:43:31 +01:00
Phil Nash
ef8b72c949
Changed dynamic_pointer_casts to static_pointer_casts
2017-05-05 15:43:31 +01:00
Martin Hořeňovský
a9128d0fac
More macros are now variadic
...
Also added tests for them
2017-05-03 19:10:27 +02:00
Martin Hořeňovský
c5c3d368a2
Added std:: qualification to nullptr_t
...
Apparently Clang doesn't like it unqualfied 😄
2017-05-03 00:29:36 +02:00
Martin Hořeňovský
33ed1773f4
Reworked stringification layer, removed Catch::toString
...
Now the order of stringification checks is
1) StringMaker specialization
2) operator<<
toString overloads and specializations have been removed.
2017-05-02 23:51:03 +02:00
Martin Hořeňovský
b819432271
Don't clear out all messages upon printing an assertion.
...
Previously, this would not print out any messages for the last CHECK
```cpp
TEST_CASE("Foo") {
INFO("Test case start");
for (int i = 0; i < 2; ++i) {
INFO("The number is " << i);
CHECK(i == 0);
}
CHECK(false);
}
```
now it does.
2017-04-29 17:50:03 +02:00
Martin Hořeňovský
40130e59b4
Fix order of arguments in CATCH_FAIL macro
2017-04-28 18:33:52 +02:00
Martin Hořeňovský
5ffc8a84cd
Fix order of arguments in CATCH_FAIL and nonvariadic INTERNAL_CATCH_MSG
...
Fixes #896
2017-04-28 18:30:04 +02:00
Phil Nash
316cb28ea8
Added missing <memory> includes
2017-04-26 17:04:00 +01:00
Phil Nash
d17d94e45d
Made INTERNAL_CATCH_TEST variadic so commas in assertions work
2017-04-26 16:10:18 +01:00
Phil Nash
8ccbf63f28
Removed Ptr, Shared and SharedImpl
2017-04-25 21:56:14 +01:00
Phil Nash
e6094a9503
migrated (Reporter) Nodes to std::shared_ptr
2017-04-25 21:56:14 +01:00
Phil Nash
851e40a4bb
migrated Pattern to std::shared_ptr
2017-04-25 21:56:14 +01:00
Phil Nash
0807a6910f
migrated ITracker to std::shared_ptr
2017-04-25 21:56:14 +01:00
Phil Nash
44cccde8b9
Migrated ITestCase to std::shared_ptr
2017-04-25 21:56:14 +01:00
Phil Nash
0844d6e867
Migrated IStreamingReporter from Ptr to std::shared_ptr
2017-04-25 21:56:14 +01:00
Phil Nash
a96f25c716
Some listener and factory clean-ups
2017-04-25 21:56:14 +01:00
Phil Nash
dd78824697
Migrated IReporterFactory to std::shared_ptr
2017-04-25 21:56:14 +01:00
Phil Nash
338ba6b9ba
Migrated Config and IConfig to shared_ptr (from Ptr)
2017-04-25 21:56:14 +01:00
Phil Nash
41afd0c3d4
Removed copy ctor, assignment operator and swap from TestCaseInfo
2017-04-25 21:56:14 +01:00
Phil Nash
602b62f037
Removed legacy reporter support
2017-04-25 21:56:14 +01:00
Phil Nash
e749724a11
A load more C++11 tweaks - mostly moving initialisations from constructors to inline
2017-04-25 19:30:53 +01:00
Phil Nash
cc8206f4c3
Removed SafeBool
2017-04-25 19:30:53 +01:00
Martin Hořeňovský
e1bca7017d
Most of Assertion macros are now variadic
...
This means that `REQUIRE(std::vector<int>{1, 2} == std::vector<int>{1,
2});` works as expected.
Note that assertion macros taking more than 1 argument are currently not
variadic, because variadic args have to come last, which would make the
interface of these ugly: `REQUIRE_THROWS_AS(std::exception const&, ....
)`
2017-04-25 20:20:46 +02:00
Phil Nash
be0fc60c07
Updated version number for v2 development and removed single include (for now).
2017-04-25 14:43:13 +00:00
Phil Nash
a0ada2e935
v1.9.3
2017-04-25 14:23:06 +00:00
Phil Nash
e4694f58da
Removed errant uses of uint64_t
...
fixes #894
2017-04-25 14:15:59 +00:00
Phil Nash
79650e44f4
Removed more C++98/03 compatibility
2017-04-25 12:40:52 +01:00
Phil Nash
5c8ea03cc8
Removed debug break support for PowerPC Macs
2017-04-25 12:27:26 +01:00
Phil Nash
242022460d
Use std::chrono for Timer to eliminate platform dependency
2017-04-25 12:24:34 +01:00
Phil Nash
67005d290c
Removed more redundant compatibility stuff from timer
2017-04-25 12:13:16 +01:00
Martin Hořeňovský
71df66365e
Gutted catch_compiler_capabilities
...
All C++11 toggles are now removed. What is left is either platform
specific (POSIX_SIGNALS, WINDOWS_SEH), or possibly still needed
(USE_COUNTER).
If current CLion is compatible with `__COUNTER__`, then we should also
force `__COUNTER__` usage.
Changed
* CATCH_AUTO_PTR -> std::unique_ptr
* CATCH_OVERRIDE -> override
* CATCH_NULL -> nullptr
* CATCH_NOEXCEPT -> noexcept
* CATCH_NOEXCEPT_IS -> noexcept
Removed
* CATCH_CONFIG_CPP11_UNIQUE_PTR
* CATCH_CONFIG_CPP11_SHUFFLE
* CATCH_CONFIG_CPP11_TYPE_TRAITS
* CATCH_CONFIG_CPP11_OVERRIDE
* CATCH_CONFIG_CPP11_LONG_LONG
* CATCH_CONFIG_CPP11_TUPLE
* CATCH_CONFIG_CPP11_IS_ENUM
* CATCH_CONFIG_CPP11_GENERATED_METHODS
* CATCH_CONFIG_CPP11_NOEXCEPT
* CATCH_CONFIG_CPP11_NULLPTR
* CATCH_CONFIG_VARIADIC_MACROS
2017-04-25 12:43:19 +02:00
Phil Nash
1f3ba8a0b6
Converted (almost) all for-loops with iterators or indices to range-based
2017-04-25 11:07:02 +01:00
Martin Hořeňovský
6a09425de1
Remove C++98 backcompat from evaluate
2017-04-25 11:28:40 +02:00
Martin Hořeňovský
c6e5738d54
Remove c++98 backcompat from timer
2017-04-25 11:25:49 +02:00
Martin Hořeňovský
c6980ec2d8
Remove C++98 backcompat from toString
2017-04-25 11:21:22 +02:00
Martin Hořeňovský
7c900660ef
Removed superfluous reimplementation of type traits
2017-04-25 11:19:01 +02:00
Martin Hořeňovský
2fdd81a33f
Removed C++98 backcompat from Approx
...
Now it always uses type traits to work with all types convertible to
double
2017-04-25 11:11:26 +02:00
Martin Hořeňovský
fc7f0a02b8
v1.9.2
2017-04-25 11:08:02 +02:00
Phil Nash
211b330346
Don’t unconditionally #include <stdint.h> (as earlier MSVC don’t have it)
2017-04-25 08:43:14 +01:00
Phil Nash
d36fe214a6
Further tweaked alignment hack for Option
2017-04-25 08:38:25 +01:00
Martin Hořeňovský
a34c053f0a
All of Approx's member functions now accept strong typedefs
...
Previously `Approx::operator()`, `Approx::epsilon`, `Approx::margin` and
`Approx::scale` didn't.
Closes #888
2017-04-24 22:01:45 +02:00
Phil Nash
eedcc82d31
Tweaked storage alignment "workaround" a bit more in Option.
2017-04-21 07:19:39 +01:00
Martin Hořeňovský
b95163bd3a
Don't enable POSIX signals under QNX
...
Fixes #889
2017-04-20 21:02:25 +02:00
Phil Nash
2809be87cc
“fixed” alignment in Option
2017-04-20 14:39:07 +01:00
Phil Nash
e5c5a636a9
junit reporter does not count exceptions as failures if ok-to-fail
2017-04-11 15:47:42 +01:00
Phil Nash
2bf30e9e5a
Use (locally defined) UInt64 instead of uint64_t
...
- typedefs long long for MSVC
- typedefs uint64_t otherwise
Should probably do finer grained compiler checking - but this should at least be better than what was there before
2017-04-11 15:06:25 +01:00
Martin Hořeňovský
c6990cdf91
v1.9.1 release
2017-04-09 21:25:20 +02:00
Martin Hořeňovský
da8786b8fd
Unexpected exception are no longer ignored by default
...
What an embarassing bug, I'll have to look into why it wasn't caught by
any of Catch's self-tests.
Fixes #885 and closes #887 (duplicate)
2017-04-09 21:20:58 +02:00
Martin Hořeňovský
1b03c5ab6a
v1.9.0 release
2017-04-07 22:56:36 +02:00
Phil Nash
29d26d3179
Commented out unused argument
2017-04-07 11:36:54 +01:00
Phil Nash
ca764ec8d9
TeamCity reporter “ignores” failures in tests marked “ok to fail”
...
- also don’t report hidden/ not-selected tests
2017-04-07 11:15:37 +01:00
Martin Hořeňovský
8f85d08e9f
Give up on _Pragma for gcc, force disable Wparentheses in all TUs
2017-04-05 21:37:27 +02:00
Sergey Semushin
94425ad59b
Add opt-in c++11 stream insertable check. ( #877 )
...
* Add opt-in c++11 stream insertable check.
To opt-in, define CATCH_CONFIG_CPP11_STREAM_INSERTABLE_CHECK.
Opt-in fixes #872 and should fix #757 as well.
2017-04-05 09:53:10 +02:00
Martin Hořeňovský
0354d50278
Added templated constructor to C++11 Approx
...
When using C++11, comparison operators are already templated to take
anything that can be explicitly converted to double, but constructor
took only doubles. This lead to warnings when an `Approx` was
constructed from floats, which was problematic for some users.
Since just adding float constructor would be a large breaking change, as
suddenly `Approx( 1 )` would become ambiguous, I added a templated
constructor that will take anything that is explicitly convertible to
double. This has the added benefit of allowing constructing `Approx`
instances from instances of strong typedefs, ie allowing
`calculated_temp == Approx( known_temp)`.
Closes #873
2017-04-04 15:19:15 +02:00
Martin Hořeňovský
cdd83c2e15
Fmt and tag fixup for #876
...
Github wouldn't let me push to the PR, probably because it was made from
fork of a fork...
2017-04-04 11:31:13 +02:00
dvirtz
9a07dde16d
print messages when unexpected exceptions are thrown
2017-04-04 11:27:19 +02:00
Martin Hořeňovský
6e091d3991
Reset the UnexpectedException report state
2017-04-03 11:48:50 +02:00
Martin Hořeňovský
95d85fb186
Fixed up CATCH_CONFIG_FAST_COMPILE for REQUIREs
...
Unexpected exceptions no longer cause abort and there should be no more
potential for false negatives.
The trade-off now is that exceptions are no longer translated.
2017-04-03 11:36:55 +02:00
Martin Hořeňovský
4fe2432e05
Rework of REQUIRE* changes in CATCH_CONFIG_FAST_COMPILE
...
`ResultBuilder`s destructor now checks for exceptions, preventing false
negatives. The speedup should remain the same give or take a tiny bit.
2017-03-29 21:12:06 +02:00
Martin Hořeňovský
c3a41e26a7
Suppress -Wexit-time-destructors in Catch code
...
This is another warning that follows test macros, making it painful to
suppress without leaking outside. Luckily clang's `_Pragma`
implementation works.
Should fix #308
2017-03-29 20:30:59 +02:00
Martin Hořeňovský
f23b6b8b85
Don't sanitize exception type in REQUIRE_THROWS_AS
...
Effectively a revert of previous commit, fixing #542 , where this was
added to stop linters complaining about `REQUIRE_THROWS_AS` used like
`REQUIRE_THROWS_AS(expr, std::exception);`, which would be slicing the
caught exception. Now it is user's responsibility to pass us proper
exception type.
Closes #833 which wanted to add `typename`, so that the construct works
in a template, but that would not work with MSVC and older GCC's, as
having `typename` outside of a template is allowed only from C++11
onward.
2017-03-23 21:11:21 +01:00
Martin Hořeňovský
4597b43912
Throw instead of calling exit in RegistrarForTagAliases constructor
...
Caries a problem vis-a-vis Windows, just like previous commit, but that
can be fixed later on.
Closes #866
2017-03-22 18:40:07 +01:00
Martin Hořeňovský
f64d914bff
Throw instead of calling exit in enforceNotReservedTag
...
Closes #865
2017-03-22 17:53:22 +01:00
Martin Hořeňovský
d07999ddff
Version struct now uses char* for holding branch name
...
Since the info is constant, and the only use is to write it out during
runtime, there is no need for `std::string`.
2017-03-22 17:45:36 +01:00
Kevin Ushey
e04dc5105b
use inline 'libraryVersion()' function ( closes #858 )
2017-03-22 15:51:02 +01:00
Phil Nash
f3ec843ba6
Changed all internal forwarding macro usages to put macro name as first argument
...
(and ‘expression’, if any, last)
This is a first step towards allowing expression arguments to become variadic
2017-03-21 13:23:35 +00:00
Martin Hořeňovský
55ed17f97b
Removed stray define
2017-03-20 10:53:32 +01:00
Martin Hořeňovský
7a8a0205b4
CATCH_CONFIG_FAST_COMPILE now disables trys in REQUIRE*
...
This seems to give about 15% speedup when compiling tests using GCC.
The tradeoff is that under certain circumstances, there is a chance for
false negative result, when the expression under test throws exception
and the test code catches it before it gets to the test runner.
Example:
``` cpp
TEST_CASE("False negative") {
try {
REQUIRE(throws() == "");
} catch (...) {}
}
```
This test case will succeed, reporting no assertions checked, instead of
failing as it would with `CATCH_CONFIG_FAST_COMPILE` disabled. However,
just removing the try-catch block inside client's code will fix this, so
it is worthwhile.
This change does not apply to CHECK* macros, because these are currently
specified as continuing on exception and thus need the local try-catch
to work as intended.
2017-03-17 13:21:40 +01:00
Mickey Rose
4dc06bdb70
Use bulk vector::insert rather than back_inserter
2017-03-15 15:19:38 +00:00
Phil Nash
4ec8d53e91
Tag Alias registry is part of registry hub instead of it’s own singleton
...
- should now be cleaned up properly
2017-03-15 09:45:37 +00:00
Kevin Wojniak
e8b31108d6
Fix Catch::toString() linker error when main() is compiled as C++
...
Fixes #278
2017-03-14 11:54:14 -07:00
Martin Hořeňovský
0c015aa887
v1.8.2 release
2017-03-13 21:29:30 +01:00
Phil Nash
0afd52b98d
Fix Objective-C Matchers
...
Fixes #854
2017-03-13 15:40:21 +00:00
Phil Nash
38b05f1400
Don’t assume first CL arg (exe name) is present
...
Fixes #729
2017-03-13 11:00:58 +00:00
Phil Nash
db9866677e
Don’t ref past end of string
...
fixes #830
2017-03-13 10:22:02 +00:00
Phil Nash
4101ff314a
#include <ctype> for std::to lower
2017-03-10 19:25:00 +00:00
Phil Nash
e4a25ad5ff
Added CATCH_REGISTER_LISTENER without the INTERNAL_ prefix
2017-03-10 19:15:03 +00:00
Phil Nash
5d6c744d38
Qualified std::tolower in Clara.
...
Fixes #543
2017-03-10 18:38:52 +00:00
Phil Nash
5dd0639520
Added FAIL_CHECK
...
Works like FAIL, but does not abort test.
As proposed in #765
2017-03-08 15:42:11 +00:00
Martin Hořeňovský
ace70407a2
Add tests for #835
...
Also add ErrnoGuard before `isatty` call, because apparently it can set
errno to 25 (ENOTTY).
2017-03-06 22:07:33 +01:00
Martin Hořeňovský
613e1466f9
Save errno before using sprintf, ifstream.
...
std::ifstream in libstdc++ contains a bug, where it sets errno to zero.
To work around it, we manually save the errno before using std::ifstream
in debugger check, and reset it after we are done.
We also preventively save errno before using sprintf.
Fixes #835
2017-03-06 21:51:22 +01:00
Alex Glyde
d8f45cd5f1
changing tabs to spaces
2017-03-06 10:55:00 -05:00
Alex Glyde
3afd077b55
teamcity reporter should time durations explicitly
2017-03-06 10:35:03 -05:00
Martin Hořeňovský
e95bf48445
Take std::string by const-ref where possible
...
Most places already do, this brings over some forgotten places.
Also close #842
2017-03-06 13:16:43 +01:00
Phil Nash
041498b221
Fixed unintentional tabs
2017-03-06 09:23:31 +00:00
philsquared
d5a5883a10
Fixed mssing virtual destructor warnings
...
In Visual Studio with warning 4265 enabled
Closes #844
2017-03-06 08:59:52 +00:00
Phil Nash
f9db24a824
Refactored console reporter include logic to match Xml Reporter’s
2017-03-03 14:19:41 +00:00
Phil Nash
9bee606dd6
Tweaked Xml Reporter to follow same success/ info behaviour as Console reporter
2017-03-03 14:12:47 +00:00
Martin Hořeňovský
be4f6ab8e1
Change reporting of CAPTURE'd variables
...
Info is not changed, intentionally.
Closes #639
2017-03-03 14:34:50 +01:00
Martin Hořeňovský
cd6de9cd34
Don't reconstruct expression on encountering fatal error
...
In some cases, like when given
```cpp
std::vector<char>* str =
reinterpret_cast<std::vector<char>*>(0x1234458);
CHECK(*str == std::vector<char>());
```
reconstructing the expression to report it would cause another fatal
error. Instead we just put together an AssertionResult without
reconstructing the expression fully.
This should fully fix #810
2017-03-02 18:18:28 +01:00
Martin Hořeňovský
40f6a5b8a4
Added duration reporting to compact reporter
...
Also made the duration formatting code available to all reporters.
Closes #780
2017-03-02 16:16:17 +01:00
Martin Hořeňovský
95b0eb2b6c
TAP reporter now behaves as if -s was always set
...
This should fulfill the TAP specification better.
2017-03-02 15:54:08 +01:00
Martin Hořeňovský
0b28d3daf2
Merge branch 'tap-count-success' of https://github.com/gahr/Catch
2017-03-02 15:23:46 +01:00
Phil Nash
c6535a080e
v1.8.1 release
2017-03-01 16:04:44 +00:00
Phil Nash
673ec550f5
Moved definition of _BSD_SOURCE earlier
2017-03-01 15:59:10 +00:00
Pietro Cerutti
da023b2f9a
TAP Reporter: count success tests even if not printed
...
This fixes a bug whereas running the TAP reporter without the -s switch
causes the reporter to print 1..0.
2017-03-01 09:24:58 +00:00
Phil Nash
0952b76e16
v1.8.0 release
2017-02-28 14:19:09 +00:00
Martin Hořeňovský
d5c623b3b6
Merge branch 'develop' of https://github.com/CNugteren/Catch
...
This adds an optional absolute margin to the Approx checks.
2017-02-27 13:12:13 +01:00
Martin Hořeňovský
061a183036
Console reporter now uses fixed decimal formatting
...
3 decimal places, output in seconds.
2017-02-27 11:34:15 +01:00
Martin Hořeňovský
72b72ca937
Fix C++11 dependency in TAP reporter
2017-02-22 17:04:36 +01:00
Martin Hořeňovský
a8a6b3159d
Disabled C4312 in the evaluate layer
...
We reinterpret cast int to T* (because someone might compare 0 to a
ptr), which causes 4312 to fire when x64 platform is set.
Fixes #148
2017-02-22 14:14:59 +01:00
Martin Hořeňovský
9e2616aeac
Add missing assert.h include to reporter bases.
...
It being missing caused an error when compiling under MSVC.
2017-02-22 13:31:51 +01:00
Martin Hořeňovský
c5ffd2e3f0
Fixed up Automake reporter
2017-02-22 13:29:17 +01:00
Martin Hořeňovský
b0260c615d
Fixed-up TAP reporter a bit.
2017-02-22 13:28:13 +01:00
Colton Wolkins (Ogre)
a63ce953a0
Add TAP reporter
...
This is a hackish attempt to add a TAP reporter (see
philsquared/Catch#309 ) by following the TAP 12 specification
<http://testanything.org/tap-specification.html >. I'm unsure how well I
did in following the spec or with following good C++ guidelines.
Comments are appreciated.
Signed-off-by: Colton Wolkins (Ogre) <frostyfrog2@gmail.com>
2017-02-22 11:35:20 +01:00
Justin Wilson
b753f05d74
Add reporter for Automake ( #826 )
...
This allows for integration with Automake's default log compiler.
See #826 for more details.
2017-02-22 11:17:25 +01:00
Martin Hořeňovský
9bab7c8229
Changed console reporter test duration reporting format
...
Was
"<section-name> completed in XXX s."
Now is
"XXX s: <section-name>"
Closes #322
(cherry picked from commit 0805539)
2017-02-22 08:35:53 +00:00
Phil Nash
d8c4512b25
Removed tabs
2017-02-22 08:26:52 +00:00
Phil Nash
d2a59ad37b
Fixed test spec parser issue
...
- multiple specs in a single string, with escapes in each were erroring out
2017-02-22 07:49:38 +00:00
Phil Nash
10dfca34ac
Added first vector matchers (Contains and Equals)
2017-02-21 16:05:04 +00:00
Phil Nash
45d4096756
Generalised Matchers so objects and comparators can be different types
2017-02-21 15:52:03 +00:00
Phil Nash
1ca8cefa9a
Added #define needed for gettimeofday() to be declared on some versions of Cygwin
2017-02-21 11:32:32 +00:00
philsquared
ca66dd243c
Added a couple more unimplemented assignment operators to silence VS2013 warnings
2017-02-21 09:10:44 +00:00
philsquared
44632c3d71
Merge branch 'warning-c4512' of https://github.com/gchudnov/Catch into gchudnov-warning-c4512
2017-02-21 08:56:14 +00:00
philsquared
b1835e1de9
Moved WIndows leak detector code out of main()
2017-02-17 23:43:31 +00:00
Martin Hořeňovský
8cd413572a
Merge branch 'dev-windows-leakdetection'
2017-02-17 14:25:08 +01:00
Martin Hořeňovský
30e4dbef1c
Report leaks to debugger in addition to stderr
...
This branch should also close #120 .
2017-02-17 14:22:57 +01:00
Phil Nash
90b3946e9c
Add file/line to TestCase, Section and Failure elements in Xml Reporter
2017-02-17 10:26:17 +00:00
Martin Hořeňovský
d8230a8d4d
Add opt-in leak detection under MSVC + Windows.
...
Closes #439
2017-02-16 11:09:09 +01:00
Martin Hořeňovský
c6178601c5
Cygwin compatibility fixes
2017-02-15 17:57:22 +01:00
Martin Hořeňovský
2e0ae01b05
Improve -Wparentheses supression for gcc
...
If the gcc version supports `_Pragma` properly, we use that to disable
it locally inside assertions.
Otherwise we disable it for the entire TU.
Fixes #674
2017-02-15 17:11:44 +01:00
Phil Nash
fe690a68ef
push/pop warnings when disabling parentheses warnings within assertion (gcc/ clang)
2017-02-15 10:03:28 +00:00
Martin Hořeňovský
3cfef738e7
Merge branch 'dev-performance-round3'
2017-02-15 10:35:01 +01:00
Martin Hořeňovský
7b13a8f85a
Move debug break out of tests, speeds up compilation time
...
This is hidden behind CATCH_CONFIG_FAST_COMPILE
2017-02-14 15:35:12 +01:00
Phil Nash
2081caa452
Import MatcherBase to Catch namespace
2017-02-14 09:16:54 +00:00
Phil Nash
a5a013811c
Renamed toStringUncached -> describe
2017-02-14 09:16:54 +00:00
Phil Nash
1400127d6f
Extracted string matchers impl into cpp that is only compiled into main TU
2017-02-14 09:16:54 +00:00
Phil Nash
7fed25ad1f
New Matchers implementation
...
- simpler
- less templates and machinery
- no cloning, copying or unnecessary heap allocations
- better factored
2017-02-14 09:16:54 +00:00
Phil Nash
d08cee288f
v1.7.2 build
2017-02-13 16:15:42 +00:00
Phil Nash
873ef276b6
XML Reporter closes tag and flushes stream at end of TestCase and Section tags.
...
This fixes an issue where XML reports on stdout are broken by printf statements
2017-02-13 15:56:25 +00:00
Martin Hořeňovský
bc68b9f454
More include simplifications
2017-02-13 14:12:22 +01:00
Phil Nash
67d513aa73
Removed single char contains()
...
- had incorrect prototype anyway
2017-02-13 08:20:45 +00:00
Phil Nash
9a3486a705
Replaced use of dynamic_cast with static_cast.
...
It wasn't necessary anyway.
This addresses #821
2017-02-12 22:00:17 +00:00
Martin Hořeňovský
50dee9ae57
Fixed typo in CLI error reporting
2017-02-12 13:50:15 +01:00
Martin Hořeňovský
b2a6fe971b
Couple more includes cleaned out
2017-02-12 12:48:25 +01:00
Martin Hořeňovský
9012f95964
Moved some std includes out from catch_common.h
2017-02-12 12:17:07 +01:00
Martin Hořeňovský
d0620c3495
Added std:: qualification to some functions from C stdlib
...
This should solve #543 , once Clara changes are in as well.
2017-02-11 23:20:09 +01:00
Phil Nash
005787f1c5
Marked IConfig implementations in Config CATCH_OVERRIDE
...
(silences warnings)
2017-02-10 22:39:27 +00:00
Martin Hořeňovský
f75a511b5c
Fix MSVC /analyze warning about inconsistent annotations
2017-02-10 17:12:41 +01:00
Phil Nash
ab44fb6811
The file/ line in sections is now of the section. not the test case
2017-02-10 11:56:46 +00:00
Martin Hořeňovský
73159ace3d
REQUIRE_THROWS_AS now catches exception by const&
...
Prevents some warnings caused by catching complex types by value.
Closes #542
2017-02-09 12:57:01 +01:00
Martin Hořeňovský
9952dda524
REQUIRE_THROWS_AS is now reported with expected type as well
...
Also updated tests to reflect this change.
2017-02-09 12:51:43 +01:00
Martin Hořeňovský
e543cc0646
Removed an obsolete file that somehow got into the previous master.
2017-02-09 11:12:25 +01:00
Martin Hořeňovský
a38ccec33a
Added 3rd party bug to documentation
2017-02-08 20:53:39 +01:00
Marek Klus
ab199d9cf9
XmlReporter: Trim test case name; added description and tags attributes to the test case element in the xml report.
2017-02-07 23:12:58 +00:00
Phil Nash
97d8003a71
XmlWriter can specify a stylesheet
...
Provide an extension point on XmlReporter to be able to supply a stylesheet url in a derived implementation
2017-02-07 23:09:43 +00:00
Phil Nash
1f271c9944
XmlWriter reverts to XML 1.0.
...
Character encodings that are not valid in XML 1.0 are instead written using C-style escapes
2017-02-07 22:48:06 +00:00
Martin Hořeňovský
7b8a27eadb
v1.7.1 build
2017-02-07 10:06:52 +01:00
Phil Nash
2b74613c54
Revert "First cut of Evaluate refactoring to remove int specialisations, among other things"
...
This reverts commit 39753558eb
.
2017-02-06 22:37:23 +00:00
Martin Hořeňovský
23600609c0
Deregister SEH handler before reporting SE.
2017-02-06 20:40:46 +01:00
Martin Hořeňovský
4feb2dbb50
Removed const qualification to disambiguate between operator overloads
2017-02-06 20:39:32 +01:00
Phil Nash
84af6bc955
XmllWriter flushes the stream after every endElement now
2017-02-06 16:25:36 +00:00
Phil Nash
88b760276d
Revert "XmlWriter reverts to XML 1.0."
...
This reverts commit a189387f49
.
2017-02-06 16:21:01 +00:00
Phil Nash
23eb4cc580
Added stdout and stderr to XML Reporter
2017-02-06 16:14:06 +00:00
Phil Nash
a189387f49
XmlWriter reverts to XML 1.0.
...
Character encodings that are not valid in XML 1.0 are instead written using C-style escapes
2017-02-06 16:00:05 +00:00
Phil Nash
39753558eb
First cut of Evaluate refactoring to remove int specialisations, among other things
2017-02-06 15:15:43 +00:00
Martin Hořeňovský
e991c006b7
Fixes for MinGW compatibility
...
Some versions of MinGW do not support enough of Win32 API to let us work
with SEH, so SEH is now MSVC only (+ configurable toggle).
Also made use of gmtime_s MSVC only (as oposed to Windows only).
Fixes #805
2017-02-06 01:43:53 +01:00
Martin Hořeňovský
712323ab7c
Include windows.h proxy header, instead of windows.h itself
...
Because the signal changes were in a different branch from the windows.h
related changes, the SEH handling code included the header directly.
Fixes #803
2017-02-03 14:09:17 +01:00
Martin Hořeňovský
ce37f48ffa
v1.7.0 build
2017-02-01 21:47:43 +01:00
Martin Hořeňovský
f58ff0c540
Remove \l, add \f in character pretty printing
...
I have never head of \l and MSVC warns about unknown escape sequence, so
I changed it into \f that definitely exists and potentially might be
useful.
2017-02-01 21:31:14 +01:00
Phil Nash
b524fa7cd8
Fixed bugs in escape char handling in test names
...
1. If escape char is first char, sets start of range
2. Multiple escape chars are handled (offsets chars to remove)
2017-02-01 14:13:20 +00:00
Eric Schmidt
5121b5b058
Put quote marks around printed characters; also nicely print some escapes
2017-01-31 21:53:36 +01:00
Jan Včelák
1e5176bd69
Cap main exit code to 255 ( #797 )
...
Changed default main to clamp exit code to 8 bits because of POSIX limitations.
Updated documentation about declaring non-default main.
2017-01-31 20:48:14 +01:00
Martin Hořeňovský
0dabd951ba
expr is now cast to void in THROWS family of assertions.
...
This prevents Clang from complaining about unused value in expressions
containing explicit casts used in the THROW assertion macro family.
Example:
`REQUIRE_THROWS_AS(static_cast<bool>(object), std::bad_cast);` would
trigger `-Wunused-value` warning. Now it does not.
Credits to Arto Bendiken, who submitted a PR almost 3 years ago, but his
branch has since died and I was unable to merge it.
2017-01-31 18:02:11 +01:00
Josef Kemetmueller
70d3c937c3
Enable breaking into debugger on Mac
...
The integrated assembler segment was missing an underscore:
"_asm__". Also we remove the "DEBUG" macro check, so we are consistent
with the linux and windows variant.
Now breaking into gdb on failure should work via:
gdb --args test_executable --break
2017-01-31 16:00:42 +00:00
Martin Hořeňovský
38af8d7035
Fixed SEH deregistration on Windows
...
Should fix #796
2017-01-30 19:54:16 +01:00
Martin Hořeňovský
615aa071a8
Merge branch 'dev-performance-round2'
2017-01-30 13:02:48 +01:00
Martin Hořeňovský
15816c5760
Revert "use sizeof(expr) for unevaluated syntax check"
...
Using sizeof(expr) can trigger a compile-time error,
"lambda expressions are not allowed in an unevaluated context", when passing
expression containing lambda, like a std algorithm. This error is considered
a standard defect, as it is meant to prevent lambdas in decltype
or templates, but not in sizeof.
This reverts commit 227598af47
.
2017-01-30 11:56:29 +01:00
Martin Hořeňovský
bcaa2f9646
Use char literal instead of string literal with 1 char
...
In reality, this is a relatively small performance improvement,
especially with the previous improvements removing lots of superfluous
string handling, but still was measurable.
2017-01-29 23:07:15 +01:00
Martin Hořeňovský
60f8ebec49
Use const char* for filename in SourceLineInfo
...
This is sane, because those `const char*`s are given to us by compiler,
from the text area and thus we do not have to manage their lifetimes. We
also never want to change them.
Also moved copy constructor to compiler-generated methods, not sure why
it wasn't -- even before it was the same as a compiler would generate.
2017-01-29 22:03:27 +01:00
Alexander Ryabykin
02a69b449f
Compilation warnings fix ( #791 )
...
* Compilation warnings fix
* Removed unused argument from reportFatal function
2017-01-27 09:32:58 +01:00
Martin Hořeňovský
c390c4cb9f
Fixed inconsistent and trailing whitespace
...
This means that all tabs used in indentation are now 4 spaces and that
there should be no more trailing whitespace.
Ill also look into creating a pre-commit hook that will prevent this
from happening in the future.
Fixes #105
2017-01-26 23:13:12 +01:00
Martin Hořeňovský
60a9ac7e65
Enabled previous commit under MSVC, introduced new feature toggle
2017-01-26 18:47:29 +01:00
Jonathan Coe
c06afe438e
Add support for comparison of Approx with strong typedefs
...
closes #652
2017-01-26 18:44:03 +01:00
Martin Hořeňovský
4ce11d63a6
Merge branch 'dev-performance'
2017-01-25 22:56:36 +01:00
Martin Hořeňovský
83f4b39680
Added benchmark for previous commit, added iterations to failure bench.
2017-01-25 22:39:43 +01:00
Martin Hořeňovský
b1171bd1f2
Merge branch 'dev-signals'
2017-01-25 22:09:52 +01:00
Martin Hořeňovský
184865358c
CHECK no longer stops running SECTION on exception.
...
This seems to be much closer to desired behaviour than the current one, where
CHECK(false) lets the execution continue, but CHECK(<throws>) does not.
2017-01-23 17:52:17 +00:00
Phil Nash
31c23b9489
Added [!nonportable] tag
2017-01-23 17:44:55 +00:00
Phil Nash
f347611403
Restated text format loop to avoid out-of-bounds condition
2017-01-23 16:58:49 +00:00
Phil Nash
1efd8d3067
Added missing <iterator> #include
2017-01-23 15:19:42 +00:00
Phil Nash
e7bcbb35c0
First cut of -c/—section option for running specific sections
2017-01-23 12:36:03 +00:00
Phil Nash
4a04682e49
Text formatting rework
...
Rewrote main wrapping loop. Now uses iterators instead of indices and intermediate strings.
Differentiates between chars to wrap before, after or instead of.
Doesn’t preserve trailing newlines.
Wraps or more characters.
Dropped support for using tab character as an indent setting control char.
Hopefully avoids all the undefined behaviour and other bugs of the previous implementation.
2017-01-23 12:28:40 +00:00
Martin Hořeňovský
9a56609569
v1.6.1 build
2017-01-20 12:49:59 +01:00
Mickey Rose
227598af47
use sizeof(expr) for unevaluated syntax check
2017-01-19 21:25:27 +01:00
Martin Hořeňovský
ee0ca512ea
Force short-circuited evaluation for types that have overloaded &&.
...
This fixes #574 .
2017-01-17 23:31:03 +01:00
Martin Hořeňovský
b71a06cf98
JUnit reporter outputs timestamps now
...
Also extended approval tests script to support the change
2017-01-16 20:21:43 +01:00
Martin Hořeňovský
2e87f8e328
Merge branch 'windows-header-defines' of https://github.com/horenmar/Catch
2017-01-16 17:00:43 +01:00