1
0
mirror of https://github.com/catchorg/Catch2.git synced 2025-06-27 23:36:08 -04:00
Commit Graph

114 Commits

Author SHA1 Message Date
d7f8c36e4c Add traits for checking whether types are comparable 2022-11-04 19:24:42 +01:00
3b40cf13eb Split out parseTestSpec into test-only helpers 2022-10-28 13:27:46 +02:00
f1084fb309 Fix references to license file
The license file was renamed with 6a502cc2f5
2022-10-28 11:30:15 +02:00
e19ed221bd Provide round-tripping serialization for TestSpec 2022-10-27 18:23:59 +02:00
c6dfeb5e7d Split tests for TestSpec into its own file
They also got slapped with the `[approvals]` tag in the process,
because we have too many approval tests and want less of them,
and these particular tests don't bring much value.

Related to 
2022-10-26 21:03:56 +02:00
a43f67962e Refactor parsing of shard index/count in cmdline handling
This worsens the message for negative numbers a bit, but
simplifies the code enough that this is still a win.
2022-10-23 00:10:05 +02:00
f1361ef624 Refactor how the RNG seed is parsed when handling cmdline 2022-10-22 22:18:30 +02:00
d7341b5dc1 Add parseUInt utility function
There is an increasing number of places where Catch2 wants to parse
strings into numbers, but being stuck in C++14 world, we do not
have good stdlib facilities to do this (`strtoul` and `stoul`
are both bad).
2022-10-21 10:53:50 +02:00
7a2a6c632f Make Random*Generators be seedable
This is a necessary step to fix issue with combining multiple
random generators in one test case, with different section nesting.
2022-05-17 17:57:21 +02:00
5d7883b551 Remove leftover comment in tests 2022-05-16 21:50:52 +02:00
48f3226974 Add support for retrieving generator's element as string 2022-05-16 16:34:06 +02:00
af8b54ecd5 Generators now keep track of the index of current element
This might become potentially useful in the future, when we want
to provide the ability to forward jump generators, to be able to
simply reproduce specific input to a test.

I am not yet sure how it would work, but the basic idea is that
it could be similar to the `-c` switch for selecting specific
`SECTION` in a test case.
2022-05-16 11:56:21 +02:00
33aeb603fe Add check for registering multiple reporters under same name 2022-05-15 09:54:27 +02:00
fc3d11b1d1 Add Wfloat-equal to default-enabled warnings
This is kinda messy, because there is no good way to signal to
the compiler that some code uses direct comparison of floating
point numbers intentionally, so instead we have to use diagnostic
pragmas.

We also have to over-suppress the test files, because Clang (and
possibly GCC) still issue warnings from template instantiation
even if the instantion site is under warning suppression, so the
template definition has to be under warning suppression as well.

Closes 
2022-05-14 15:47:20 +02:00
5a49285e9c Add --list-listeners option 2022-05-10 20:57:59 +02:00
d60fbe49be Slight improvement for reporter test 2022-05-10 20:57:50 +02:00
91ea25e51a Fix use of u8-literal that would break in C++20 2022-05-03 13:54:07 +02:00
198808a24e Misc cleanups from exploring Clang warnings 2022-05-03 13:53:55 +02:00
07cdef2096 Fix uninit memory in Clara tests 2022-04-24 13:31:19 +02:00
5baa29b6b9 Add test for %debug stream name 2022-04-23 23:34:27 +02:00
7b93a2014c Rename catch_stream -> catch_reusable_string_stream
After everything else was split out, this name much reflects the
actual contents of the file(s).
2022-04-16 16:34:08 +02:00
98bb638fb2 Split out IStream out of catch_stream.hpp 2022-04-16 16:33:57 +02:00
a243cbae52 Introduce type to handle reporter specs with defaults filled-in 2022-04-13 15:02:25 +02:00
79d1e82381 Store IStream instance owning ptrs in reporter instances
This ended up being a surprisingly large refactoring, motivated
by removing a `const_cast` from `Config`'s handling of reporter
streams, forced by previous commit.
2022-04-13 15:00:50 +02:00
4f09f1120b Make IStream::stream non-const
This way it makes much more sense from logically-const point
of view, and also means that concrete implementations don't
have to always have a `mutable` keyword on the stream member.
2022-04-13 14:59:39 +02:00
4e006a93ff Rename IStreamingReporterPtr => IEventListenerPtr
This reflects the renaming of the reporter/listener base class.
2022-04-10 21:50:51 +02:00
d5bfce4d84 Rename config::colourMode to config::defaultConfigMode
This describes the actual intention much better.
2022-04-07 12:50:13 +02:00
423e1d2ebb Integrate the new reporter specs into Catch2
This means that the CLI interface now uses the new key-value oriented
reporter spec, the common reporter base creates the colour implementation
based on the reporter-specific configuration, and it also stores the
custom configuration options for each reporter instance.

Closes  as it allows per-reporter forcing of ansi colour codes.
2022-04-07 12:50:08 +02:00
3c06bcb374 Fix reporter parser spec to use the right key for colour-mode 2022-04-06 21:41:45 +02:00
a51fd07bd0 Add helper for parsing the new reporter specs
The new reporter spec generalizes key-value options that can be
passed to the reporter, looking like this
`reporterName[::key=value]*`. A key can be either Catch2-recognized,
which currently means either `out` or `colour`, or reporter-specific
which is anything prefixed with `X`, e.g. `Xfoo`.
2022-04-05 15:45:54 +02:00
d750da13a8 Split out colour mode string parsing into its own function 2022-04-05 13:42:06 +02:00
c045733d05 Add splitReporterSpec helper 2022-04-05 12:57:33 +02:00
797c3e7318 Refactor tests 2022-03-31 22:30:38 +02:00
6206db5a73 Fix missing licence headers 2022-03-31 20:04:08 +02:00
78e33ce51f Added TestCaseInfoHasher and tests. ()
Test case hashing includes tags and class name

As the hasher involves more code now, it was split out into its own file
and it got its own set of tests.

Closes 
2022-03-31 16:46:41 +02:00
1a8a793178 Refactor colour handling to prepare for per-reporter colour modes
This includes always compiling the ANSI and None colour
implementations, as they don't need to touch any platform
specific APIs, and removing their respective compile-time
configuration options.

Because the Win32 colour implementation requires Win32-specific
APIs, it is still hidden behind a compile-time toggle,
`CATCH_CONFIG_COLOUR_WIN32` (renamed from `..._COLOUR_WINDOWS`).

The commandline options for colours were also changed. The
option now uses different name, and allows to select between
different implementations, rather than changing whether
the compiled-in colour implementation is used through
"yes/no/default" options.
2022-03-28 13:10:13 +02:00
6227ca317e Add tests for ColourGuard 2022-03-24 16:02:56 +01:00
4d8acafecb Rename isStdout => isConsole and add doccomment 2022-03-24 16:02:51 +01:00
4acc520f76 Event listeners no longer take reporter config in constructor
This also required splitting out Listener factory from
the reporter factory hierarchy. In return, the listener
factories only need to take in `IConfig const*`, which
opens up further refactorings down the road in the colour
selection and implementation.
2022-03-18 00:36:18 +01:00
913f79a661 Each reporter keeps its own colour implementation
This opens path to per-reporter colour output customization,
and fixes multiple issues with the old colour implementation.

Under the old implementation, using Win32-backed colouring
would always change the colour used by the console, even if the
actual output was written elsewhere, such as a file passed by
the `--out` flag. This will no longer happen, as the reporter's
colour impl will check that the reporter's stream is pointed
to console before trying to change the colours.

POSIX/ANSI colour implementation suffered a similar-ish issue,
in that it only wrote the colour escape codes into the default
output stream, even if the reporter asking for colouring was
actually writing to a completely different output stream.
2022-03-08 12:51:13 +01:00
06f74a0f8e Add %stderr and %stdout as recognized magic stream names 2022-03-07 10:59:27 +01:00
61d0f7a9af Pass the whole IStream wrapper into reporter
This will become useful when reworking colour support, because
Win32 colour support requires checking whether the output is
stdout, which is done through the `IStream` wrapper.
2022-03-06 16:34:13 +01:00
ff5b311898 Remove superfluous warning suppression in tests 2022-02-22 20:13:17 +01:00
715cd25081 Add IStream::isStdOut 2022-02-22 15:45:51 +01:00
fc5552d27b Push down handling of default reporter to Config's constructor
This simplifies the handling of default reporter in console
parsing, at the cost of making `Config`'s constructor responsible
for more things.
2022-02-17 23:02:30 +01:00
7a2f9f4633 Extend checkLicense.py to also check tests 2022-01-29 13:10:54 +01:00
f83332d89b Use the new licence header in SelfTest's cpp files 2022-01-29 00:03:43 +01:00
b6ff2c3dda Error out reporter registration for reporter names with '::' 2022-01-09 19:01:14 +01:00
103cb16696 Rename listening reporter to multi reporter 2022-01-05 00:00:28 +01:00
fae0be25b3 Improve error handling in parsing reporter specs 2022-01-01 14:16:11 +01:00