Phil Nash
3537b7858f
Removed vestigal ComparatorT template arg to MatcherBase
2017-11-13 10:08:48 +00: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ý
a0dbc62955
Fix OS X compilation error
2017-11-10 19:56:39 +01:00
Martin Hořeňovský
5f961af70e
Remove leftover commented out lines
2017-11-10 18:37:58 +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ý
13370bddf2
Revert "Move <ctime> include out of line"
...
This reverts commit 36f02d76d6
.
2017-11-08 08:31:48 +01:00
Martin Hořeňovský
36f02d76d6
Move <ctime> include out of line
2017-11-07 21:59:52 +01:00
Phil Nash
0d3fc59f6d
Added missing <memory> include
2017-11-07 18:48:57 +00:00
Phil Nash
56e1075613
Introduced ReusableStringStream and removed all uses of std::ostringstream from the main path
...
ReusableStringStream holds a std::ostringstream internally, but only exposes the ostream interface.
It caches a pool of ostringstreams in a vector which is currently global, but will be made thread-local.
Altogether this should enable both runtime and compile-time benefits. although more work is needed to realise the compile time opportunities.
2017-11-07 18:01:10 +00:00
Phil Nash
868e125d49
Moved a lot of stream related stuff out of the public headers and replaced more ostream dependencies with iosfwd
2017-11-07 15:55:09 +00:00
Daniel Doubleday
e28763ad05
Fix platform detection for iOS
2017-11-06 10:08:22 +01:00
Martin Hořeňovský
4f9123dc20
Remove self-include in header
2017-11-03 22:34:49 +01:00
Phil Nash
4acf112c19
Removed zombie files
...
These files were removed from the Catch2 branch, and crept back in when Catch2 merged with master
2017-11-03 16:56:11 +00:00
Phil Nash
46c7c9d3a0
Merge branch 'catch2'
2017-11-03 12:05:38 +00:00
Phil Nash
b119ebdde1
v2.0.1 release
2017-11-03 12:01:52 +00:00
Phil Nash
fe05062f9e
Print any start-up exceptions in Session's constructor, so custom main's don't need to worry about them
2017-11-02 17:58:07 +00:00
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
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ý
2a3606f8e3
v1.11.0
2017-10-31 13:55:48 +01:00
Martin Hořeňovský
a6cf19abff
Make Approx::margin inclusive
...
Fixes #952 , related to #980
2017-10-30 21:33:29 +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
Sebastian Grottel
296955c437
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-15 18:30:40 +02:00
Phil Nash
05b1ca2884
Fixed expansion of _FALSE binary expression
...
- see #1051
2017-10-13 19:45:19 +01:00
Phil Nash
da6c2a6914
Fixed expansion of _FALSE binary expression
...
- see #1051
2017-10-13 19:44:20 +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
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ý
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
2a1f8ae684
New version of Clara
2017-09-26 14:13:08 -07: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
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
Dmitry Kozhevnikov
9c07718b5f
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-09-07 18:00:04 +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
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ý
255f7d7369
Minor cleanup
2017-08-30 15:53:39 +02:00
Martin Hořeňovský
0673b9be35
Split RNG related things into its own file
...
This further removes 2 function declarations from the common path
2017-08-30 15:32:44 +02:00
Martin Hořeňovský
48db47c737
Remove unused internal macro from the common path
2017-08-30 15:30:10 +02:00
Martin Hořeňovský
fc495ba0cb
Dev build 3
2017-08-30 12:20:21 +02:00
Martin Hořeňovský
61d2c375dd
Add evaluation specialization for T* and long
...
Fixes #1005
2017-08-30 12:11:41 +02:00
Martin Hořeňovský
dd8e79c529
Streamline includes in external interfaces
2017-08-29 16:44:02 +02:00
Martin Hořeňovský
4453fefb00
Remove check for compiler version before using __COUNTER__
...
All still supported compiler versions support __COUNTER__.
User can also still turn off use of __COUNTER__ by defining
CATCH_CONFIG_NO_COUNTER.
2017-08-29 15:45:58 +02:00
Martin Hořeňovský
6e46f29830
Remove empty compiler detection
...
If they are needed in the future, they can be reinstated, but there
is no point in keeping them around currently.
2017-08-29 15:40:19 +02:00
Martin Hořeňovský
92444d8b72
Remove catch_context.h from the common include path
2017-08-29 15:36:09 +02:00
Martin Hořeňovský
bcb430b837
Clean up various minor things
2017-08-29 14:02:14 +02:00
Martin Hořeňovský
5932576f53
Split writeToDebugConsole out of main path
2017-08-29 13:51:55 +02:00
Martin Hořeňovský
3b8b25c59d
Make REGISTER_TEST_CASE auto registering
...
This also means it can be used in global scope
2017-08-29 09:52:58 +02:00
Martin Hořeňovský
75f143835e
Prevent exception translator registration with CATCH_CONFIG_DISABLE
2017-08-29 09:52:25 +02:00
Martin Hořeňovský
05b6f03f3e
Disable reporter/listener registration with CATCH_CONFIG_DISABLE
2017-08-29 09:48:52 +02:00
Sam Bristow
a04bd6d436
Remove duplicate CLI option
...
The "use-colour" option was accidentally duplicated as part of commit
feaf355
(Implemented libidentify support).
2017-08-28 12:16:23 +02:00
Martin Hořeňovský
053c29a2b8
Add partial implementation of CATCH_CONFIG_DISABLE
...
* Assertions are defined into (void)(0) no-op
* SECTIONs are defined away (leaving {} as scope)
* TEST_CASEs and TEST_CASE_METHODs are not registered.
* REGISTER_TEST_CASE is defined into (void)(0) no-op
* METHOD_AS_TEST_CASE is defined away
2017-08-27 22:05:25 +02:00
Martin Hořeňovský
8f6d6a4a2d
Remove legacy [hide] tag
...
Also removed even legacier "./" prefix for test case name...
2017-08-27 16:45:53 +02:00
Martin Hořeňovský
e8d3be3621
Workaround raw string literal bug in VS2017
2017-08-27 12:38:59 +02:00
Martin Hořeňovský
7818e2666d
v1.10.0
2017-08-26 15:34:18 +02:00
Martin Hořeňovský
cd30dd1a70
Workaround raw string literal bug in VS2017
2017-08-26 15:14:27 +02:00
Phil Nash
8e8c0c1675
Tweaked how failedButOk assertions are recorded
...
- fixes issue where sections in !shouldfail or !mayfail test cases that have failing assertions where marked as failed instead of failedButOk
2017-08-25 11:37:49 +01:00
Phil Nash
b1d0085796
Tweaked how failedButOk assertions are recorded
...
- fixes issue where sections in !shouldfail or !mayfail test cases that have failing assertions where marked as failed instead of failedButOk
2017-08-25 11:33:40 +01:00
Phil Nash
b6e7c9bd7a
Specialise removeConst for nullptr
2017-08-24 23:07:44 +02:00
Phil Nash
180d9242f5
Suppress more signed/ unsigned mismatches during Evaluator calls on MSVC
2017-08-24 23:07:03 +02:00
Phil Nash
b7bd52cc98
Cherry-picked "evaluate" refactoring from dev-modernize branch
...
- fixed up NULL comparisons to allow for NULL being a long
- should address #981
2017-08-24 23:07:03 +02:00
Martin Hořeňovský
489b639587
Change include guards in catch_external_interfaces.h
...
Previously they weren't recognized by the generateSingleHeader.py
script and weren't removed during stitching
2017-08-18 19:33:00 +02:00
Phil Nash
5d6c1f4dd0
Dev build 2
2017-08-18 15:58:00 +01:00
Phil Nash
3bc03cd617
Went back to Catch 1.x behaviour for -d
...
-d takes "yes" or "no", rather than being a standalone flag option. The default is "defaultForReporter" so the previous change actually dropped some control.
2017-08-18 15:53:10 +01:00
Martin Hořeňovský
24af32f378
Add define that pulls in reporter and listeners interfaces
...
This allows users to define reporters and listeners in files different
from the main file.
Related to #991 , #986
2017-08-17 20:23:30 +02:00
Phil Nash
0545de0a31
Hold translated exception in local string while matching
2017-08-17 19:21:00 +01:00
Martin Hořeňovský
597fca3c89
Remove <algorithm> header from the common path
...
It was only used for std::max<double> within Approx, so we now have
::Catch::Detail::max(double, double) that is used instead.
2017-08-17 20:04:53 +02:00
Martin Hořeňovský
f99f511155
Removed *_REGISTER_REPORTER from main path
...
Also simplified them to single macro: CATCH_REGISTER_REPORTER
2017-08-17 20:03:16 +02:00
Martin Hořeňovský
9a18ba042f
Remove deprecated listener registration macro
2017-08-17 20:03:16 +02:00
Martin Hořeňovský
8e6641c19b
Replace stdint.h include with cstdint include
...
Just small unification of includes
2017-08-17 20:03:16 +02:00
Phil Nash
aaedae60b4
Fixed issue with comparing non-copyable values
2017-08-17 16:46:05 +01:00
Phil Nash
8582780f11
Don't include string/ vector matchers if CATCH_CONFIG_MATCHERS defined
2017-08-16 14:38:04 +01:00
Phil Nash
a36395e2ff
Changed use of strncpy to memcpy
2017-08-15 23:47:52 +01:00
Phil Nash
699e571400
Documented benchmark-resolution-multiple command line option
...
- and increased default to 100
2017-08-15 19:51:22 +01:00
Phil Nash
61c5675c11
Removed inadvertent use of auto merged from dev-modernise
2017-08-15 19:34:10 +01:00
Phil Nash
70e4af9d44
Implemented wait-for-keypress option
2017-08-15 14:12:11 +01:00
Phil Nash
917a51da6b
Added libidentify support, including option for waiting for keypress on exit (and/ or start)
2017-08-15 13:48:14 +01:00
Phil Nash
7be258536e
Suppress strncpy copy warnings on MSVC
2017-08-14 12:12:28 +01:00
Phil Nash
94d347b059
Removed StringData
2017-08-14 09:14:49 +01:00
Phil Nash
3772f69f0f
Removed String and StringBuilder
2017-08-14 09:04:14 +01:00
Phil Nash
ece64c3b3a
Removed redundant .c_str()s from StringRef usages
2017-08-14 08:54:57 +01:00
Phil Nash
fa3535e95e
Added << ostream overload to StringRef
2017-08-14 08:50:44 +01:00
Phil Nash
c659e0fd3d
StringRef conversions to/ from std::string
2017-08-14 08:39:14 +01:00
Phil Nash
eed4ae86ad
Added config to control multiple of clock resolution to run benchmark iterations for
2017-08-11 22:24:52 +01:00
Phil Nash
feaf355489
Implemented libidentify support
...
- see https://github.com/janwilmans/LibIdentify
2017-08-11 19:55:55 +01:00
Martin Hořeňovský
2ce6c74f8f
v1.9.7
2017-08-11 00:01:20 +02:00
Phil Nash
9688891868
Fix issue with fatal errors and non-failing assertions
...
Fixes #990
2017-08-10 21:44:54 +02:00
Phil Nash
684cbb2631
Fixes issue with fatal errors and non-failing assertions
...
Fixes #990
2017-08-10 17:10:13 +01:00
Phil Nash
97c06ca6fb
Merge branch 'reevaluate' into dev-modernize
2017-08-10 16:18:05 +01:00
Martin Hořeňovský
11295a2663
Make catch_stream.hpp a standard .cpp file
2017-08-10 11:45:05 +02:00
Martin Hořeňovský
aa42dd92d1
Merge branch 'master' into dev-modernize
2017-08-10 11:34:26 +02:00
Martin Hořeňovský
7e4038d848
Capture std::clog writes and combine them with std::cerr writes ( #989 )
...
This also introduces Catch::clog() method to allow embedded targets
to override std::clog usage with their own stream (presumably null-sink),
similarly to how Catch::cout() and Catch::cerr() are used.
Fixes #989
2017-08-09 15:28:40 +02:00
Phil Nash
ee9b19efd3
Moved matcher-based capture macros into their own file
...
- this file excluded from the CATCH_CONFIG_DISABLE_MATCHERS path.
- matchers are always compiled in to the impl file
- _THROWS_WITH macros are still available with matchers disabled - but only the ones that take a string
- tests that use matchers have #ifdefs, so the whole SelfTest project can compile with matchers disable.
2017-08-09 12:10:14 +01:00
Phil Nash
b59e0ed48a
Collapsed alternate capture macros now originals are redundant
2017-08-09 11:36:33 +01:00
Phil Nash
8d21b4a916
Removed some unnecessary #includes
...
- and don't #include "catch_debugger.h" in the header path when CATCH_CONFIG_FAST_COMPILE is defined
2017-08-09 10:51:50 +01:00
Phil Nash
4b5ac4d3d9
Actually do what the previous commit claimed to do!
...
:-s
2017-08-09 10:29:05 +01:00
Phil Nash
8382d99081
Workaround for GCC 4.8 "deleted ctor in aggregate" bug
2017-08-09 10:18:31 +01:00
Phil Nash
dc1df297e3
Suppressed some warnings
...
- signed/ unsigned mismatches
- virtual destructor on ITransientExpression (even though not needed)
2017-08-09 09:29:44 +01:00
Phil Nash
8c95a81448
Removed all (well, most) of the redundant, ResultBuilder-based, code
2017-08-09 09:08:33 +01:00
Phil Nash
7df290dfc1
Integrated new AssertionHandler into unexpected exception handling in RunContext
2017-08-09 08:49:59 +01:00
Phil Nash
201028d6ec
Integrated INTERNAL_CATCH_THROWS with new AssertionHandler
2017-08-09 00:52:20 +01:00
Phil Nash
27fd8f80bd
Integrated INTERNAL_CATCH_THROWS_STR_MATCHES with new AssertionHandler
2017-08-09 00:44:30 +01:00
Phil Nash
ef4fa56b71
integrated INTERNAL_CATCH_THROWS_MATCHES with new AssertionHandler
2017-08-08 23:41:55 +01:00
Phil Nash
9668410b8e
integrated INTERNAL_CHECK_THAT with new AssertionHandler
2017-08-08 23:31:43 +01:00
Phil Nash
2832e23aa9
Restored exceptionGuard functionality under CATCH_CONFIG_FAST_COMPILE
2017-08-08 21:07:30 +01:00
Phil Nash
5f91724368
integrated AssertionHandler into INTERNAL_CATCH_MSG
2017-08-08 20:17:09 +01:00
Phil Nash
8a97beece2
integrated AssertionHandler into INTERNAL_CATCH_THROWS_AS
2017-08-08 19:43:07 +01:00
Phil Nash
f033f4f184
integrated AssertionHandler into INTERNAL_CATCH_NO_THROW
2017-08-08 19:36:18 +01:00
Phil Nash
f247ce5bff
First cut of new AssertionHandler/ Decomposer
...
- integrated into INTERNAL_CATCH_TEST. Needs more work to fully replace existing stuff
2017-08-08 17:53:01 +01:00
Phil Nash
f8148ebae1
Made macroName and capturedExpression StringRefs
2017-08-08 01:22:21 +01:00
Phil Nash
59f9bcf1ed
Reduced AssertionInfo to a pure record type
2017-08-08 01:08:07 +01:00
Phil Nash
5e60050299
Removed default ctors for AssertionInfo, AssertionResult and SourceLineInfo
2017-08-08 01:02:24 +01:00
Phil Nash
e658bacb04
Refactored how FAST_COMPILE affects internal test macros (less duplication)
2017-08-07 00:09:54 +01:00
Phil Nash
3a409e9fd4
Suppress more signed/ unsigned mismatches during Evaluator calls on MSVC
2017-08-06 00:38:03 +01:00
Phil Nash
63392e095e
Refactored Evaluator templates to only be specialised on Op, with Lhs/Rhs types templated on method instead
2017-08-06 00:29:37 +01:00
Phil Nash
0a2ce87d32
Removed compare layer from expression evaluation
2017-08-06 00:13:00 +01:00
Phil Nash
b3b29f4b4c
Use size_t for String size types
2017-08-05 22:53:21 +01:00
Phil Nash
cff3818e68
Correctly handle special tags that also imply being hidden (!benchmark)
2017-08-05 22:24:17 +01:00
Phil Nash
519db85758
Report benchmark durations in natural units
...
(and extended StringRef to be able to report utf8 char lengths
2017-08-05 21:41:56 +01:00
Phil Nash
4421672fb8
Removed benchmark tests from approval tests (for now)
2017-08-05 11:26:20 +01:00
Phil Nash
97d6b08087
Changed clock resolution estimator to return uint64_t
2017-08-04 21:31:28 +01:00
Phil Nash
a9b6813ad9
First draft of (experimental) benchmarking support
2017-08-04 19:23:30 +01:00
Phil Nash
a1e3f0b624
Moved Timer impl back to cpp
...
(I thought it wasn't included on the non-main path, but it is)
2017-08-04 13:53:47 +01:00
Phil Nash
39d37d9f34
Timer resolution is now nanoseconds
2017-08-04 12:22:16 +01:00
Phil Nash
c7028f7bc7
Made most of Timer class inline - and export getCurrentMicrosecondsSinceEpoch()
2017-08-04 12:16:05 +01:00
Phil Nash
5450de2acd
Added some missing override
s and removed some virtual
s from overrides
2017-08-04 12:13:58 +01:00
Martin Hořeňovský
3882ac1a19
Include proper exception header in enforce.h
2017-08-02 00:26:52 +02:00
Martin Hořeňovský
e8b785b177
Fixup bad merge in 2212cdfe
2017-08-02 00:04:26 +02:00
Anton Vorobyev
eab56d6656
Initial support for native IBM i ILE C++ ( #976 )
...
* - Initial support for native IBM i ILE C++
Signed-off-by: zeromem <zeromem2@gmail.com>
2017-08-01 22:49:27 +02:00
Neal Coombes
2212cdfe26
Eliminate some work when results won't be reported.
2017-08-01 22:49:27 +02:00
Martin Hořeňovský
249bf116e8
Route all T* comparisons through const void* comparisons
...
This should stop the evaluate machinery from instantiating all the
templates for every ptr type that is compared, instead generating it
for single one.
2017-08-01 22:09:32 +02:00
Martin Hořeňovský
6d4673505d
Add missing <algorithm> include in catch_approx.hpp
2017-08-01 22:02:00 +02:00
Martin Hořeňovský
85e14c5fb5
Move some compile-time dispatch to runtime
...
The runtime performance is likely to be negligible,
but compile times need every improvement they can get.
2017-08-01 21:58:09 +02:00
Martin Hořeňovský
feca97dfde
Split out internal error macros from the common path
2017-08-01 18:46:33 +02:00
Martin Hořeňovský
c815ad1d53
Fix fwd declaration of IConfig in catch_test_case_registry_impl.hpp
2017-08-01 17:52:02 +02:00
Martin Hořeňovský
d4e796c138
Move Section(End)Info bodies to proper .cpp file
2017-08-01 17:51:32 +02:00
Martin Hořeňovský
7575749e56
Fix compilation error on older compilers
2017-08-01 17:21:06 +02:00
Martin Hořeňovský
8a2ff20982
Address some of the Resharper finds for Catch 1
...
Closes #957 as the other findings are mostly noise that is pointless
to fix in a branch that will be soon EoLd.
2017-07-31 12:31:45 +02:00
Anton Vorobyev
d3377c791d
Initial support for native IBM i ILE C++ ( #976 )
...
* - Initial support for native IBM i ILE C++
Signed-off-by: zeromem <zeromem2@gmail.com>
2017-07-31 10:47:42 +02:00
Martin Hořeňovský
0a3f899d6a
Move windows.h reduction logic into windows.h proxy header
...
Fixes #965 (at least the primary problem, the separate warnings can
be taken care of later)
2017-07-31 08:36:39 +02:00
Martin Hořeňovský
d08e31d89e
Fix inverted CATCH_CONFIG_DISABLE_MATCHERS toggle
2017-07-29 08:43:32 +02:00
Martin Hořeňovský
0ca4cfb743
Introduce compile time toggle to remove Matchers from TU
...
The toggle is `CATCH_CONFIG_DISABLE_MATCHERS` and the only use is
to speed up compilation of small TUs. For large ones it is likely
insignificant, because the speed up is constant relative to
number of tests/assertions in TU.
2017-07-28 21:34:34 +02:00
Martin Hořeňovský
d01fe03ba6
Removed <algorithm> include from the main path
2017-07-28 15:11:05 +02:00
Martin Hořeňovský
287cc92b2c
Remove <set> include from the common test path
2017-07-27 22:31:27 +02:00
Martin Hořeňovský
446bad752f
Move std::exception_ptr out of interfaces
2017-07-27 12:24:52 +02:00
Martin Hořeňovský
307eeefa8f
Change typedefs to using
2017-07-27 12:24:21 +02:00
Martin Hořeňovský
33fd54a673
Split Option<T> and TagAlias definitions away from the main include path
2017-07-27 11:55:30 +02:00
Martin Hořeňovský
5ebbec7dab
Move all stringref function bodies out of line
2017-07-27 11:32:04 +02:00
Martin Hořeňovský
a40add3153
Clean up Approx to take arguments by const&
2017-07-27 11:32:04 +02:00
Martin Hořeňovský
ab0f1dcde9
Remove superfluous include
2017-07-27 11:32:03 +02:00
Martin Hořeňovský
a75eaa3c5a
Split out more headers into separate .cpp files
2017-07-27 11:32:02 +02:00
Martin Hořeňovský
9de729b515
General cleanup
2017-07-27 11:32:01 +02:00
Martin Hořeňovský
1a96175bb2
Split out helper functions on std::string from catch_common.h
2017-07-25 21:57:35 +02:00
Martin Hořeňovský
1e59ccee41
Addressed Resharper-C++ warnings
...
See #958
2017-07-25 17:16:28 +02:00
Martin Hořeňovský
b6f62af7d1
Address more of PVS studio warnings
2017-07-25 15:45:50 +02:00
Phil Nash
46bf7605f4
Hold exception translators by unique_ptr
...
- and removed range deleters
2017-07-20 23:50:07 +01:00
Phil Nash
cb6963216f
Removed catch_section_info.cpp (not used)
2017-07-20 23:49:03 +01:00
Phil Nash
c91639e1d7
Use Columns to format reporter list
2017-07-20 23:32:35 +01:00
Phil Nash
3a37f45a97
Removed tbc_text_format (superceded by TextFlow)
2017-07-20 23:20:42 +01:00
Phil Nash
224250e2d4
listTests now only uses TextFlow (not tbd_text_format) again
2017-07-20 20:10:13 +01:00
Phil Nash
f0890dcdf8
removed redundant virtuals on override functions (and added a couple of overrides)
2017-07-20 16:23:52 +01:00
Martin Hořeňovský
87a66b8479
Address results of PVS-Studio static analysis
...
Couple are left un-addressed, see #958 for details.
2017-07-20 00:27:28 +02:00
Martin Hořeňovský
cf2678dce6
Merge branch 'dev-better-verbosity' of https://github.com/BMBurstein/Catch
2017-07-19 23:17:19 +02:00
Martin Hořeňovský
efd79aa0bd
Extend exception type in _THROWS_ with const& unconditionally
...
Potentially breaking change, but most people apparently were using it
wrong and thus it won't be breaking for them.
Closes #955
2017-07-19 21:30:00 +02:00
Martin Hořeňovský
4a1e898eae
More method bodies moved out of line
2017-07-19 15:32:58 +02:00
Martin Hořeňovský
d7ff62430a
Removed superfluous inline specifications
2017-07-19 13:40:00 +02:00
Martin Hořeňovský
edbe122761
Split out non-templated Approx methods into cpp file
2017-07-19 13:40:00 +02:00
Martin Hořeňovský
7a22bad763
Addressed some static analysis warnings
...
Based on findings in #957
2017-07-19 09:50:08 +02:00
Phil Nash
0a614ee5ba
re/moved some headers in catch_tostring
2017-07-19 08:31:10 +01:00
Phil Nash
4833932ab2
Removed redundant member
2017-07-19 08:17:41 +01:00
Phil Nash
cd6f6c021a
Minor clean-ups in string conversion code
2017-07-19 08:16:55 +01:00
Phil Nash
b0e3f45a22
Replaced some uses of tbc_text_format with TextFlow (from Clara)
2017-07-18 20:27:42 +01:00
Phil Nash
c7931f6f18
Reuse ostringstream in XML reporter
2017-07-18 08:35:41 +01:00
Phil Nash
01a21f67f7
Converted a load of spelt out iterators to auto
2017-07-18 08:08:17 +01:00
Martin Hořeňovský
7ccf11da29
Split out catch_run_context into cpp and hpp file
2017-07-15 16:48:21 +02:00
Phil Nash
d2d5910479
Suppress clang-tidy warnings about inline asm
2017-07-13 08:26:08 +01:00
Phil Nash
e01ed48a70
Made everything used in test case registration noexcept
...
- this prevents warnings about startup-time exceptions
2017-07-13 08:25:47 +01:00
Phil Nash
989222eceb
Fixed up OcMethod base
2017-07-12 23:26:13 +01:00
Phil Nash
720fdf1d02
Simplified test case registration and started using StringRefs
2017-07-12 23:11:41 +01:00
Phil Nash
79627cdcdb
Changed some names in test case registry
...
- in preparation for a bigger refactoring
2017-07-12 23:11:41 +01:00
Phil Nash
e3e6453229
Removed spurious "inline" (was causing linker errors) and fixed broken macOS detection
2017-07-12 15:24:35 +01:00
Martin Hořeňovský
878bd140e6
Removed superfluous inline keywords
2017-07-12 16:16:55 +02:00
Martin Hořeňovský
d8df83ee2f
Don't rely on transitive <string> include
2017-07-12 16:07:52 +02:00
Martin Hořeňovský
8d8f481597
Moved couple function's bodies out of common-include path
2017-07-12 16:07:27 +02:00
Martin Hořeňovský
3f6c078173
Use = delete instead of private, unimplemented copy operations
2017-07-12 15:11:23 +02:00
Martin Hořeňovský
0bb9f52a99
Removed declared-but-undefined function
2017-07-12 15:10:55 +02:00
Martin Hořeňovský
91c1556078
Moved Catch NotImplementedException out of the common include path
...
We could probably toss it away completely, currently it is used
only by TeamCity reporter.
2017-07-12 15:05:01 +02:00
Martin Hořeňovský
4332b84c9b
Moved leak detector to its own file
2017-07-12 15:03:52 +02:00
Phil Nash
8ebe94ca2e
Added NOLINT annotations to selectively suppress clang_tidy warnings
2017-07-10 18:43:07 +01:00
Martin Hořeňovský
1d3bfa0353
More include and impl refactoring
2017-07-10 14:25:38 +02:00
Martin Hořeňovský
5f3f19de08
Default included reporters are now also in .cpp files
...
The non-default ones remain as header files.
2017-07-10 11:33:18 +02:00
Martin Hořeňovský
93f84b5b0d
Modified generateSingleHeader script to work with .cpp files better
...
Also fixed the scripts to take into account renamed version file
2017-07-09 21:02:36 +02:00
Baruch Burstein
af05ccfe5d
Merge remote-tracking branch 'upstream/dev-modernize' into dev-better-verbosity
2017-07-09 12:48:29 +03:00
Baruch Burstein
058b21e604
Previous implementation didn't work
...
It relied on calling a virtual method from a base constructer
2017-07-09 12:46:53 +03:00
Neal Coombes
a53ea30723
Eliminate some work when results won't be reported.
2017-07-07 01:34:12 +02:00
Martin Hořeňovský
fc32165d48
Started work on splitting out .cpp files from header files
2017-07-06 22:28:42 +02:00
Baruch Burstein
f749347523
Check that reporter supports requested verbosity
2017-07-06 01:25:49 +03:00
Baruch Burstein
bb9f2bb3ad
Use new formatting capabilities
2017-07-04 18:16:42 +03:00
Phil Nash
0016362f69
explicit conversion from size_t to size_type
2017-06-29 16:31:05 +01:00
Phil Nash
03afbdfec9
Made more of StringRef noexcept
2017-06-29 11:47:09 +01:00
Phil Nash
78e7994435
Added string classes
2017-06-29 11:18:14 +01:00
Phil Nash
4c1880b35f
Clamp exit code internally, so it doesn’t have to be done in every main() implies
2017-06-27 11:37:50 +01:00
Martin Hořeňovský
ee67ac6b7c
v1.9.6
2017-06-27 12:21:48 +02:00
Martin Hořeňovský
fae0fa4ec1
Merge branch 'dev-second-string-argument-removal' into dev-modernize
...
It is no longer true that an assertion macro has either 1 or 2 args,
so...
2017-06-26 20:48:41 +02:00
Martin Hořeňovský
c5bac73cad
Merge branch 'master' into dev-modernize
...
This includes the performance commits done recently
2017-06-26 19:08:42 +02:00
Baruch Burstein
1e7000ed55
Merged implemention of #934 , but using 'verbose' option on command line instead.
...
(see 616f7235ef
on master for original merge)
2017-06-26 17:15:28 +01:00
Martin Hořeňovský
7bcfdf8e94
Disable deprecation warning of std::uncaught_exception
...
We might prefer to use `std::uncaught_exceptions` in the future, but I
would prefer not to bring in more configuration into Catch Classic
Closes #927
2017-06-26 16:50:23 +01:00
Martin Hořeňovský
8d5f6c8e2e
Fix how GCC version is detected when checking for __COUNTER__
...
Fixes #928
2017-06-26 16:49:34 +01:00
Phil Nash
e62a9aa444
Removed const refs from NSString/ NSObject overloads (effectively reapplies PR #855 originally applied to "1.x" master)
2017-06-26 16:48:38 +01:00
Phil Nash
059a33d555
Fixed indentation
2017-06-26 16:47:40 +01:00
Baruch Burstein
8a14af701e
If --list-extra-info is specified with --list-test-names-only, only output one list
2017-06-25 17:12:29 +02:00
Martin Hořeňovský
07c6bfc3b9
--extra-info -> --list-extra-info, behaves like other --list-* flags
2017-06-25 17:12:29 +02:00
Baruch Burstein
616f7235ef
add --extra-info flag
...
this will add line info to test lists, and test descriptions to the long
form of the test list
2017-06-25 17:12:29 +02:00
Neal Coombes
396ecf6021
Cache std::ostringstream between assertions.
...
This is not thread safe, but I think that was already true of Catch.
The construction/destruction of the std::ostringstream is where the
vast majority of time is spent per assertion. A simple test of
100000000 CHECK()s is reduced from around 60s to 7.4s
2017-06-25 15:53:59 +02:00
Martin Hořeňovský
0eb101e165
Remove "second argument" from result builder and assertion result
...
This is not quite complete removal (it doesn't pass approval tests),
but it should be representative of full perf improvements from doing so
2017-06-22 18:13:05 +02:00
Neal Coombes
dcab8a5971
Performance improvement in AssertionInfo.
...
By using char const * instead of std::string we avoid significant
copying per assertion. In a simple loop with 10000000 CHECKS on
my system, this reduces the run time from 9.8s to 6s.
2017-06-22 18:03:47 +02:00
Phil Nash
0470b300a8
Reverted previous two commits as they didn’t fix anything
2017-06-22 15:53:24 +01:00
Phil Nash
3bb16e8418
Reorganised CLI again in another attempt to get past VS ICEs
2017-06-21 11:42:53 +01:00
Phil Nash
e0c6c4aee7
Another attempt to fix VS ICEs - split cli parser up.
2017-06-21 09:40:52 +01:00
Phil Nash
c43d5f673f
Moved command line lambdas out-of-line in an attempt to fix VS ICEs
2017-06-21 08:54:53 +01:00
Phil Nash
da5964af78
Updated version of Clara (should fix Windows compile issues)
...
- embedded using new embed script
2017-06-20 18:03:47 +01:00
Martin Hořeňovský
017a63da62
v1.9.5
2017-06-15 13:08:26 +02:00
Martin Hořeňovský
b90d0b7267
Disable deprecation warning of std::uncaught_exception
...
We might prefer to use `std::uncaught_exceptions` in the future, but I
would prefer not to bring in more configuration into Catch Classic
Closes #927
2017-06-15 11:43:31 +02:00
Martin Hořeňovský
efba988ccc
Fix how GCC version is detected when checking for __COUNTER__
...
Fixes #928
2017-06-13 18:20:59 +02:00
Phil Nash
1c223b63ba
Integrated (all) new version of Clara
2017-06-12 23:07:10 +01:00
Phil Nash
004228efb2
Merge pull request #855 from kainjow/objc-tostring-link
...
Fix Catch::toString() linker error when main() is compiled as C++
2017-06-11 23:06:38 +01:00
Martin Hořeňovský
6583284731
Fix erroneous result disposition for {REQUIRE,CHECK}_THAT
...
This fixes result disposition being ContinueOnFailure |
ContinueOnFailure for CHECK_THAT (obviously an error) and Normal |
ContinueOnFailure for REQUIRE_THAT (less obviously an error, but worse,
as that signals to the pipeline that assertion failure should both abort
and continue the test with ???? happening).
2017-06-06 15:12:03 +02:00
Martin Hořeňovský
47eb9b3d68
Fix #914 being removed during last merge
2017-06-06 15:07:34 +02:00
Martin Hořeňovský
950cae9040
Added new assertion macros: *_THROWS_WITH
...
It combines `*_THROWS_AS` and `*_THROWS_WITH` macros, so that the
exception type matches expectetations and its contents match a specific
matcher.
2017-06-05 18:40:50 +02:00
Martin Hořeňovský
7f6773bb4d
Merge branch 'master' into dev-modernize
...
Hopefully nothing went too wrong.
2017-06-05 17:19:42 +02:00
Martin Hořeňovský
1e16be0b9e
Purge deprecated generators
2017-06-05 16:49:10 +02:00
Martin Hořeňovský
47c8994a61
Inherit from NonCopyable to disable RegisterHub copies
2017-06-04 22:56:57 +02:00
Martin Hořeňovský
860de28b8d
Catch and register startup exceptions in autoregistrars
...
Previously they were registered where they would be thrown otherwise
2017-06-04 22:37:59 +02:00
Martin Hořeňovský
da0edcbe25
Collect startup exceptions instead of throwing them
...
Previously, some errors in Catch configuration would cause exceptions to
be thrown before main was even entered. This leads to call to
`std::terminate`, which is not a particularly nice way of ending the
binary.
Now these exceptions are registered with a global collector and used
once Catch enters main. They can also be optionally ignored, if user
supplies his own main and opts not to check them (or ignored them
intentionally).
Closes #921
2017-06-04 21:39:27 +02:00
Martin Hořeňovský
adb66f55a7
Don't include warning headers from catch_xmlwriter.hpp
...
This prevents Catch from disabling `Wpadded` for Clang inside test files
(files that do not define either `CATCH_CONFIG_MAIN` or
`CATCH_CONFIG_RUNNER`).
catch_suppress_warnings.h and catch_reenable_warnings.h should be
included only once*, so that the stitching script includes them as the
first and last header respectively, since it only includes each header
once. This caused a bug, where the first one was included properly, but
the second one was included prematurely, from catch_xmlwriter.hpp, and
thus was guarded by `CATCH_IMPL`.
* At least until the stitching script is changed to accomodate common
warning disabling header.
Fixes #871
2017-06-02 19:10:57 +02:00
Martin Hořeňovský
377c9a746d
Cosmetic fixes (whitespace and spelling)
2017-05-27 14:42:54 +02:00
twhittock
2d1739b429
ExpressionLhs reconstruction based on value, not truthiness ( #914 )
...
Types which are truthy, but have more information than the truthiness in their string conversion were showing up as 'true' or 'false' instead of showing the underlying type's string value.
2017-05-27 14:09:43 +02:00
Martin Hořeňovský
169e260e8b
Enable colourized output while in debugger
2017-05-22 00:41:31 +02:00
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ý
3dcc923351
v1.9.4
2017-05-16 13:59:29 +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ý
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
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
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
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
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
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
e4a25ad5ff
Added CATCH_REGISTER_LISTENER without the INTERNAL_ prefix
2017-03-10 19:15:03 +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
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
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
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
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ý
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
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ý
30e4dbef1c
Report leaks to debugger in addition to stderr
...
This branch should also close #120 .
2017-02-17 14:22:57 +01: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
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
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
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