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