Martin Hořeňovský
2c82f82ee2
Mark first party reporters final
...
They are not intended to be derived from, so forbidding it
explicitly improves our ability to refactor them later.
2021-09-15 21:29:18 +02:00
Martin Hořeňovský
785436cd74
Make benchmark* and fatalError reporter events pure virtual
2021-09-15 21:17:39 +02:00
Martin Hořeňovský
f314fa1f8c
assertionEnded event in reporters no longer returns bool
2021-09-15 18:57:56 +02:00
Martin Hořeňovský
013edc208b
Refactor noMatchingTestCases and skipTests reporter methods
...
They now take `StringRef` as the argument, and are virtual only
in the basic interface.
Also cleaned out the various reporters and their overrides
of these members which were often empty or delegating up.
2021-09-15 18:08:31 +02:00
Martin Hořeňovský
10fb93cce8
Add new reporter event called for each test case enter/exit
...
This means that e.g. for `TEST_CASE` with two sibling `SECTION`s
the event will fire twice, because the `TEST_CASE` will be entered
twice.
Closes #2107 (the event mentioned there already exists, but this
is its counterpart that we also want to provide to users)
2021-09-14 13:19:45 +02:00
Martin Hořeňovský
4dcf8382c7
Default-implement assertion* events in StreamingReporterBase
...
This means that a reporter deriving from `StreamingReporterBase`
does not have to override them if it isn't interested in the individual
assertions.
2021-09-14 12:41:24 +02:00
Martin Hořeňovský
12bca890b7
Use StringRefs in SectionTracker's filter bookkeeping
2021-09-09 11:04:34 +02:00
Martin Hořeňovský
317db82396
Use StringRef in more places in reporters
2021-09-09 10:41:09 +02:00
Martin Hořeňovský
cf5ccaa9df
AssertionResult::getMessage returns StringRef to internal string
2021-09-08 10:08:07 +02:00
Martin Hořeňovský
b3a84c7983
Use StringRef in pluralise implementation
...
This means that it can no longer be safely made ahead of time,
but nothing in our existing code used it like that. Normally it
is constructed and used in the same expression, which is now
more efficient.
2021-09-08 00:24:40 +02:00
Martin Hořeňovský
c0f866c7cf
Make CumulativeReporterBase's members protected
2021-09-08 00:23:37 +02:00
Martin Hořeňovský
29caae5ce5
Pass around the test suite name by StringRef
2021-09-08 00:01:31 +02:00
Martin Hořeňovský
ea49210eae
Remove Config::getProcessName because it was unused
2021-09-08 00:00:16 +02:00
Martin Hořeňovský
290c1b60e6
Store singular TestRunNode in CumulativeReporterBase
...
There can never be more than one, so there is no reason to provide
genericity over multiple nodes.
2021-09-07 21:18:48 +02:00
Martin Hořeňovský
e5938007f7
Completely remove the testGroup events
...
This was done because they were 1:1 mapping to testRun events, and
I could not think of a reasonable way to make them their own thing.
2021-09-07 20:00:22 +02:00
Martin Hořeňovský
ab3fe0053d
Remove superfluous warning suppression from console reporter
2021-09-07 19:57:55 +02:00
Roc
9ac9fb164e
Suffix the library name with 'd' for debug builds
2021-08-28 00:47:54 +02:00
Martin Hořeňovský
07018e2fba
Force __cdecl calling convention for wmain
...
Fixes #2219
2021-08-26 23:13:27 +02:00
Martin Hořeňovský
ff0a5227ca
Make Approx::operator() const
...
Closes #2273
2021-08-26 21:27:43 +02:00
Martin Hořeňovský
54edab53bf
Add missing include to benchmark/catch_execution_plan.hpp
...
Fixes #2275
2021-08-26 20:19:25 +02:00
Martin Hořeňovský
0a8516aeea
Use make_unique when registering an exception translator
2021-08-21 21:32:15 +02:00
Martin Hořeňovský
928ecbaccf
Change callable/model::clone to return a unique_ptr
2021-08-21 21:00:00 +02:00
Martin Hořeňovský
7f3297f7e8
Sweep out unused <utility> includes
2021-08-19 21:44:17 +02:00
Martin Hořeňovský
7ff54ebc06
Add _t suffix typedef for internal traits
2021-08-19 21:29:41 +02:00
Martin Hořeňovský
4113a12c69
Fix Wreserved-identifier for UDLs in Catch2
...
See #578
2021-08-19 19:15:46 +02:00
Martin Hořeňovský
edad4d0af7
Prefer _t over ::type form for std type traits
2021-08-19 00:21:13 +02:00
Martin Hořeňovský
d2ee7100d2
Replace uses of std::move and std::forward with macros
...
This improves the SelfTest build times by about 3% (measured
with Clang 10 on random Linux box I had lying around).
2021-08-16 16:22:19 +02:00
Martin Hořeňovský
03ce304102
Add std::move/std::forward replacement macros
...
Using the `CATCH_MOVE` and `CATCH_FORWARD` macros instead of the
`std::move` and `std::forward<T>` utility functions can improve
compilation times and debug build's performance, and thus will
be preferred going forward.
2021-08-16 16:22:16 +02:00
Martin Hořeňovský
2b54f1e7a6
Remove superfluous catch_enforce include from complete_invoke
...
Also added missing transitive include to `catch_benchmark.hpp`.
2021-08-11 22:52:04 +02:00
Martin Hořeňovský
2c84854b90
Use unique_ptr to hold Environment measurements in benchmarking
2021-08-11 22:52:01 +02:00
Martin Hořeňovský
3579c055c8
Use Detail::make_unique<T> in more places
2021-08-11 22:51:59 +02:00
Martin Hořeňovský
3ec63324a8
Replace owning naked IStream pointers with unique_ptrs
2021-08-11 22:51:57 +02:00
Martin Hořeňovský
0a3f511cfe
Fix inconsistencies in reporting benchmarking failures
...
With these changes, all these benchmarks
```cpp
BENCHMARK("Empty benchmark") {};
BENCHMARK("Throwing benchmark") {
throw "just a plain literal, bleh";
};
BENCHMARK("Asserting benchmark") {
REQUIRE(1 == 2);
};
BENCHMARK("FAIL'd benchmark") {
FAIL("This benchmark only fails, nothing else");
};
```
report the respective failure and mark the outer `TEST_CASE` as
failed. Previously, the first two would not fail the `TEST_CASE`,
and the latter two would break xml reporter's formatting, because
`benchmarkFailed`, `benchmarkEnded` etc would not be be called
properly in failure cases.
2021-08-07 15:16:11 +02:00
Martin Hořeňovský
1b1f3a88bc
Don't debug log empty strings
2021-08-06 11:38:54 +02:00
Martin Hořeňovský
02ab64da2e
Cleanup ExceptionTranslatorRegistry::translateActiveException
2021-08-06 00:56:09 +02:00
Martin Hořeňovský
77df08b44d
Better arg name for run_for_at_least
2021-08-06 00:55:31 +02:00
Martin Hořeňovský
340a61af50
Always use 'Detail' for the detail namespace
2021-07-27 21:45:27 +02:00
Martin Hořeňovský
3d1cf95b32
Fix ulp distance calculation for numbers with different signs
...
This is a simplification of the fix proposed in #2152 , with the
critical function split out so that it can be tested directly,
without having to go through the ULP matcher.
Closes #2152
2021-07-27 21:04:41 +02:00
Martin Hořeňovský
849002aec0
Move specialization for global op<< to the proper place
...
In v2 it was placed in a very central header due to the way it was
stitched together. Now that we don't do that, we can move it to the
proper place, removing the potential for confusion given that the
original header was split apart and renamed.
2021-06-20 19:14:56 +02:00
Martin Hořeňovský
4eb9af51af
Use non-reserved identifiers for test autoregistration objects
2021-06-19 23:15:11 +02:00
Martin Hořeňovský
78e4fbdb12
Use non-reserved identifiers for BENCHMARK macro implementation
2021-06-19 23:14:20 +02:00
Martin Hořeňovský
a7533707ff
Use unique_ptr for passing around exception translators
2021-06-19 20:57:06 +02:00
Martin Hořeňovský
28a33497be
Move extractClassName to the single calling TU and make it static
2021-06-18 23:39:07 +02:00
Martin Hořeňovský
70f5392210
Devirtualize more things in trackers
2021-06-18 10:35:02 +02:00
Martin Hořeňovský
61461dfd1d
Move default impls of isFooTracker to the interface
2021-06-18 10:35:01 +02:00
Martin Hořeňovský
c064322a9d
Devirtualize ITracker::parent
2021-06-18 10:34:58 +02:00
Martin Hořeňovský
a14d67cace
ITracker::parent returns pointer not reference
...
We were already using it mostly to get pointers rather than
references, so this makes it make more sense.
2021-06-18 10:34:55 +02:00
Martin Hořeňovský
4ce8a23edd
Tiny cleanups in tracking
2021-06-18 10:34:43 +02:00
Martin Hořeňovský
c1b59b7071
Mark JUnit reporter's internal members as private
2021-06-18 00:00:24 +02:00
AlCash07
c77ba5314a
Fix decomposing in presence of universal ADL-found operators
...
Closes #2121
2021-06-08 23:36:06 +02:00