Chris Thrasher
baab9e8d28
Export symbols for all compilers on Windows
2023-01-20 16:16:30 -07:00
Chris Thrasher
1be954ff70
Keep generated headers within project binary directory
...
This stops them from appearing in the build directories of projects
that may consume Catch2.
2022-12-26 22:44:35 -06:00
Martin Hořeňovský
ae1644e7e9
Add logical trait polyfills
2022-11-20 17:03:29 +01:00
Martin Hořeňovský
f8006aa6d4
More cleanups for src/CMakeLists.txt
...
* Sort source file lists
* Better source_group for cleanup in IDEs
* More uniform source lists
2022-11-09 13:12:42 +01:00
Martin Hořeňovský
5f9d4ef331
Move throwing test failure exceptions into a helper
2022-11-05 00:22:45 +01:00
Martin Hořeňovský
d7f8c36e4c
Add traits for checking whether types are comparable
2022-11-04 19:24:42 +01:00
Martin Hořeňovský
3fed2307e7
Add Detail::getEnv wrapper that compiles under UWP
...
Under UWP it will always return nullptr, so UWP will essentially
behave as if the environment was just empty.
2022-10-22 22:18:24 +02:00
Martin Hořeňovský
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
Jonathan Wright
0e139b73e4
add versioning to shared libs ( #2516 )
...
* add versioning to shared libs
Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2022-10-04 15:49:09 +02:00
Dimitrij Mijoski
c0e582e659
Fix building as shared library with MSVC.
2022-09-24 15:15:50 +02:00
Martin Hořeňovský
dc001fa935
Allow easy retrieval of RNG seed by the users
...
This makes it so that they don't need parallel RNG seed passing
infrastructure for randomized data generation (e.g. inputs for
benchmarks).
2022-08-18 23:23:18 +02:00
Haowei Hsu
2b0fd854e2
Modify the install directories into convention.
2022-07-25 10:43:41 +02:00
Raphael Schaller
1bd233866c
Add AllTrue, AnyTrue, NoneTrue matchers
2022-07-16 16:16:05 +02:00
Martin Hořeňovský
5a1ef7e4a6
Redo visibility fallback
2022-06-27 13:10:22 +02:00
Martin Hořeňovský
bea58bf8bb
Allow building Catch2 as dynamic library
...
Also have a check that warns users if they try to combined dynamic
library with hidden visibility, which we do not support.
Closes #2397
Closes #2398
2022-06-24 16:26:12 +02:00
Martin Hořeňovský
8730260457
Split apart combined TUs
...
The compile time improvements from using combined TUs mostly isn't
worth the annoyance they cause with various IDE shortcuts, like
when switching between header and its impl. file.
Splitting them apart also fixes the issue of empty subdirs being
installed due to `foo/internal` folders that only contained the
combined TUs and no headers.
Closes #2457
Closes #2463
2022-06-21 18:48:44 +02:00
Martin Hořeňovský
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
Martin Hořeňovský
48f3226974
Add support for retrieving generator's element as string
2022-05-16 16:34:06 +02:00
Martin Hořeňovský
316025a0d8
Properly handle startup reporter registration errors
2022-05-15 10:35:12 +02:00
Martin Hořeňovský
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
Martin Hořeňovský
98bb638fb2
Split out IStream out of catch_stream.hpp
2022-04-16 16:33:57 +02:00
Martin Hořeňovský
05e85c5652
Split out Catch::cout/cerr/clog into their own file
2022-04-16 16:33:50 +02:00
Martin Hořeňovský
b520257676
Split REMOVE_PARENS from catch_preprocessor.hpp
...
This way, some headers can include just the new header, which
transitively decreases the total include size of test_macros.hpp.
2022-04-15 17:14:28 +02:00
Martin Hořeňovský
c045733d05
Add splitReporterSpec helper
2022-04-05 12:57:33 +02:00
Daniel Feist
78e33ce51f
Added TestCaseInfoHasher and tests. ( #2394 )
...
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 #2304
2022-03-31 16:46:41 +02:00
Alan Jowett
18c58667d7
Generate Visual Studio project files with constant project guids
...
By default, CMake derives a Visual Studio project GUID from the
file path but the GUID can be overridden via a property
(see https://gitlab.kitware.com/cmake/cmake/-/commit/c85367f4 ).
Using a non-constant GUID can cause problems if other projects/repos
want to reference the catch2 vcxproj files, so we force a constant GUID here.
Signed-off-by: Alan Jowett <alanjo@microsoft.com>
Resolves : #2388
2022-03-18 00:21:12 +01:00
Martin Hořeňovský
05d4ec62c8
Add common ReporterBase as parent of the helper bases
...
This is useful as a centralized place for handling common reporter
problems like handling output streams, and soon also colour impl
handling.
2022-03-06 16:28:22 +01:00
Martin Hořeňovský
33ffc3b6fc
Allow passing compile-time configuration options through CMake
2022-02-18 11:15:08 +01:00
Martin Hořeňovský
a9ed2c235d
Rename MiscFunctions.cmake -> CatchMiscFunctions.cmake
2022-02-07 00:05:11 +01:00
Martin Hořeňovský
103cb16696
Rename listening reporter to multi reporter
2022-01-05 00:00:28 +01:00
Martin Hořeňovský
187bf6db2b
Split out CaseInsensitiveCmp into its own file
2021-12-26 00:35:46 +01:00
Martin Hořeňovský
c95072408f
Add catch_sharding.hpp to CML
2021-11-23 23:16:17 +01:00
Martin Hořeňovský
9200b4078b
Move reporter_registrars.hpp to reporters/
2021-11-10 23:52:59 +01:00
Martin Hořeňovský
f17725a186
Split void_type into its own header and rename it to void_t
2021-10-27 20:01:13 +02:00
Martin Hořeňovský
200a487cf2
Add generateRandomSeed utility to generate randomness seed
2021-10-08 21:35:41 +02:00
Martin Hořeňovský
4e6d306742
Rename Catch::Option to Optional
2021-10-05 20:39:28 +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ý
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ý
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ý
28f6698ec8
Remove unneeded interface IRunner
2021-05-13 09:14:26 +02:00
Martin Hořeňovský
d4a3cd9992
Make the static library build reproducible with supported compilers
...
This is based on bed285af07
from
`v2.x` branch, but done properly for the build in v3 branch,
effectively porting #2141 to devel.
2021-05-09 18:05:34 +02:00
Martin Hořeňovský
551946c45b
Split out INTERNAL_CATCH_UNIQUE_NAME into its own header
...
Also small cleanup of includes of related headers.
2021-02-24 23:14:18 +01:00
Martin Hořeňovský
4e8832fc88
Split CATCH_CONFIG_COUNTER into its own header
...
Part of #2041
2020-12-29 11:07:45 +01:00
Martin Hořeňovský
1d269211bd
Split CATCH_CONFIG_WCHAR into its own header
...
Part of #2041
2020-12-28 20:51:49 +01:00
Martin Hořeňovský
965afc4b2e
Split CATCH_CONFIG_ANDROID_LOGWRITE into its own header
...
Part of #2041
2020-12-28 12:53:52 +01:00
Uriel García Rivas
552af8920d
Added AnyMatch, AllMatch and NoneMatch
2020-12-27 20:20:55 +01:00
Martin Hořeňovský
a091853f4a
Rename file catch_matchers_floating -> catch_matchers_floating_point
...
The old name was a legacy of v2 era, where all headers were stitched
into one. With v3 using separate headers, it is better when they have
proper name.
2020-12-13 18:12:20 +01:00
Martin Hořeňovský
e7740316e3
Split TestFailureException into its own header
2020-11-28 11:18:54 +01:00
Martin Hořeňovský
72525a3053
Rename catch_common.hpp -> catch_source_line_info.hpp
...
Previous splitting of catch_common.hpp left it containing only one
actual thing, which is the `SourceLineInfo` type. Given that, there
is no reason to keep the old name.
Also found out that it was included in some places for no reason
(primarily Matchers).
2020-11-28 11:18:51 +01:00
Martin Hořeňovský
1982c0d5ee
Split out the StreamEndStop helper into its own header
2020-11-28 11:18:46 +01:00