Martin Hořeňovský
22ac9d2184
Approx cleanup: More tests, INFINITY handling, etc
2017-11-01 07:30:11 +01:00
Pfiffikus
00af677577
Approx rework: default scale == 0, epsilon applies to Approx::value
...
Also adds check to Approx::epsilon that the new epsilon has a valid
(ie one between 0 and 1)
Based on
http://realtimecollisiondetection.net/blog/?p=89
https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
https://en.wikipedia.org/wiki/Approximation_error#Formal_Definition
The given epsilon should refer to the target value, otherwise
the result would be unexpected, e.g. 101.02 == Approx(100).epsilon(0.01)
is true.
The default scale should be invisible, thus,
e.g. 101.01 == Approx(100).epsilon(0.01) gets false.
Finally even 101.000001 == Approx(100).epsilon(0.01) is false
2017-10-31 15:43:42 +01:00
Martin Hořeňovský
ae21020640
dev build 6
2017-10-31 15:17:21 +01:00
Martin Hořeňovský
11f716f28d
Make Approx::margin inclusive
...
Fixes #952 , related to #980
2017-10-31 14:49:00 +01:00
Sebastian Grottel
c1a91caf00
adds flushes to the output stream of teamcity reporter, making the test output more responsive.
2017-10-31 14:27:47 +01:00
Sebastian Grottel
96c5de678d
`RandomNumberGenerator::result_type` should be unsigned ( #1050 )
...
`result_type` must be unsigned:
http://en.cppreference.com/w/cpp/concept/UniformRandomBitGenerator
Using a signed type causes an infinite loop working with MS Visual Studio 2017, targetting: v140, WindowsTargetPlatformVersion 10.0.15063.0, Debug, x64
2017-10-31 14:26:36 +01:00
Dmitry Kozhevnikov
44244713f1
Update handling of __JETBRAINS_IDE__ macro
...
1. Use it to conditionally define CATCH_INTERNAL_CONFIG_COUNTER, not
CATCH_CONFIG_COUNTER, as __JETBRAINS_IDE__ is similar to
compiler-provided macros, not to user-provided ones.
2. Since __COUNTER__ will work starting with CLion 2017.3, use it
when possible (and hopefully remove this check altogether
at some point).
2017-10-31 14:15:54 +01:00
Martin Hořeňovský
c672512979
Fix C4601 and enable C4602 warning for internal builds
...
Related to #1072
2017-10-30 12:14:20 +01:00
Martin Hořeňovský
57b4e0b64c
Fix missing pragma warning(pop) and other warnings under MSVC
...
Fixes #1072
2017-10-30 09:58:13 +01:00
Phil Nash
75a77b6f8c
embedded v1.0-develop.2 of Clara, which addresses / prefixed options, which should impact non-windows platforms
...
See #1054
2017-10-21 09:16:38 +02: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
Phil Nash
ba6845a865
Version of Clara with (std::max)
2017-10-13 13:46:39 +01:00
Phil Nash
2eb93f47f7
enclosed more min/ max in parentheses to default MFC macros
2017-10-13 13:46:39 +01:00
Phil Nash
355ab78f4a
dev build 5
2017-10-12 13:06:41 +01:00
Phil Nash
927f520a97
Moved windows proxy inclusion outside of CATCH_CONFIG_COLOUR_WINDOWS guard, so workaround early inclusion can be removed
2017-10-12 10:37:23 +01:00
philsquared
cc0b093c20
unconditional windows proxy
2017-10-11 14:58:20 +01:00
Martin Hořeňovský
4899d891d3
Fix MSVC compilation when stringifying std::chrono::time_point
2017-10-09 13:13:30 +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ý
f972732737
Workaround for stitching issue in #1020
...
Closes #1020
2017-10-03 18:41:49 +02:00
Martin Hořeňovský
70e0d48978
Replace throw; with std::rethrow_exception(std::current_exception());
...
This works around a bug in libcxxrt handling of active exception count
that caused std::uncaught_exception() to return true even if there was
none.
Closes #1028
2017-09-28 12:53:09 +02:00
Phil Nash
5fe19f73e7
Scoped parseInfos population so `i` can be reused
2017-09-26 16:06:48 -07:00
Phil Nash
c1416d55cb
Backed out dynamic stack array (use fixed size for now)
2017-09-26 15:55:34 -07:00
Phil Nash
2a1f8ae684
New version of Clara
2017-09-26 14:13:08 -07:00
Phil Nash
3d49d83128
Added benchmark support to MultiReporters
...
- otherwise benchmarks are not reported if multiple reporters (usually reporter + listener(s)) are used
2017-09-21 09:32:46 +01:00
Phil Nash
bd46f66754
dev build 4
2017-09-19 17:42:20 +01:00
Phil Nash
54f1ce2af2
Don't use console colour if running in XCode
2017-09-19 15:25:33 +01:00
Phil Nash
0a146e3af7
OCTest project now #includes all cpp files, so they all get __OBJC__ defined
2017-09-19 14:59:12 +01:00
Phil Nash
b9ff7ec301
Fixed issues for ObjC use (see #1011 )
2017-09-19 14:38:18 +01:00
Phil Nash
8da0d0473b
qualified a load of size_ts with std:: namespace (all those not from Clara)
2017-09-18 17:13:17 +01:00
Martin Hořeňovský
40209d1ae0
Use StringRef on fatal error path
...
So far the fatal error path only uses string literals, so this removes
an allocation from that context
2017-09-14 20:05:25 +02:00
Martin Hořeňovský
4e85267203
Add fatalErrorEncountered method to Reporter/Listener interface
...
An empty default implementation is provided to keep backward compatibility.
Called when signal or Structured Exception is encountered.
Related to #1005
2017-09-14 19:57:59 +02:00
Martin Hořeňovský
eaf850cd0c
Do not use SEH and console api under UWP
...
Fixes #1020
2017-09-11 21:09:35 +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
03d41ce5b9
Suppressed meaningless function type qualifier warning in MSVC again
...
(this time in catch_tostring.h)
2017-09-07 11:25:10 +01:00
Phil Nash
c5608f0202
Changed all .hpp extensions to .h where there is now a corresponding .cpp
2017-09-07 11:24:33 +01:00
Phil Nash
8c39f9a725
Suppress MSVC warning about meaningless function type qualifier in generic code
2017-09-07 11:15:07 +01:00
Phil Nash
2d37649377
Fixed Objective-C mode
2017-09-06 15:44:42 +01:00
Martin Hořeňovský
8d03cb4915
Use StringRef to pass comparison operator name to BinaryExpr
...
Some nominally C++11 platforms do not have SSO (I am looking at
you libstdc++), where this avoids meaningless allocations.
2017-09-06 15:15:48 +02: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
Phil Nash
792d3d0a26
Fixed alignment of getSupportedVerbosities in MultipleReporters
2017-09-01 09:41:28 +01:00
offa
be067bce37
Explicit ctor used to fix compilation failures caused by copy
...
initialization.
2017-09-01 09:40:11 +01:00
Phil Nash
115db71bab
Incorporated Clara with TextFlow fix for assertion with consecutive newlines
...
fixes #1012
2017-08-31 16:14:27 +01:00
Martin Hořeňovský
e8ec6bd73c
General cleanup for C++11
...
Also less allocations and less stack usage on the fatal condition path
2017-08-31 11:46:37 +02:00
Martin Hořeňovský
e871742534
Move session to internal, split apart implementation
2017-08-31 10:31:52 +02:00
Martin Hořeňovský
6388fc946f
Remove last usage of NotImplementedException
...
TeamCity reporter now uses CATCH_ERROR instead
2017-08-30 20:03:54 +02:00
Martin Hořeňovský
a4df0b2c37
Remove obsoleted utility functions on matchers
...
Natural operators, &&, || and ! are preferred and do not have
limited arity.
2017-08-30 19:45:09 +02:00
Martin Hořeňovský
49a1408ff2
Fix compilation of main file with CATCH_CONFIG_FAST_COMPILE
2017-08-30 18:07:29 +02:00
Martin Hořeňovský
9796c516bb
Always compile matchers implementation
2017-08-30 18:06:48 +02:00
Martin Hořeňovský
255f7d7369
Minor cleanup
2017-08-30 15:53:39 +02:00