f7fbbac | Martin Hořeňovský | 14 May 2020, 12:57:22 UTC | Update release notes for v3 | 14 May 2020, 12:57:22 UTC |
ddde2f5 | Martin Hořeňovský | 14 May 2020, 12:52:33 UTC | Remove obsolete configuration macros from the documentation | 14 May 2020, 12:52:33 UTC |
d5e87ea | Martin Hořeňovský | 14 May 2020, 12:48:48 UTC | Add provided generic matchers to the documentation | 14 May 2020, 12:48:48 UTC |
29d4b37 | Martin Hořeňovský | 13 May 2020, 11:15:37 UTC | Add Wsuggest-override to warning flags | 13 May 2020, 14:09:34 UTC |
ae0ba81 | Martin Hořeňovský | 12 May 2020, 11:57:16 UTC | Use more warnings for develoment builds | 12 May 2020, 21:56:51 UTC |
03ef6b9 | Martin Hořeňovský | 11 May 2020, 18:15:58 UTC | Explicitly default smfs when relevant to avoid Wdeprecated-copy-dtor | 12 May 2020, 21:56:34 UTC |
579dcd1 | Martin Hořeňovský | 12 May 2020, 14:22:11 UTC | Ignore Wdeprecated for Clara | 12 May 2020, 21:56:24 UTC |
eb267b4 | Martin Hořeňovský | 12 May 2020, 13:40:39 UTC | Tap reporter changes | 12 May 2020, 21:56:23 UTC |
2528247 | Martin Hořeňovský | 12 May 2020, 11:51:58 UTC | Delete Capturer's smf As part of `-Wdeprecated-copy-dtor` sweep, I noticed that Capturer's copies are defaulted. Given that the class would likely break horribly in the event of actual copy happening, they are now deleted. | 12 May 2020, 21:56:08 UTC |
f56832d | Martin Hořeňovský | 11 May 2020, 18:05:10 UTC | Add Catch2::Catch2 alias for Catch2 CMake target | 11 May 2020, 18:05:10 UTC |
601ca1c | Martin Hořeňovský | 11 May 2020, 14:34:55 UTC | Refactor some uses of virtual -> override | 11 May 2020, 14:34:55 UTC |
a39154e | Martin Hořeňovský | 10 May 2020, 22:00:48 UTC | Do not explicitly default smfs if all of them are defaulted | 10 May 2020, 22:00:55 UTC |
7c622a7 | Martin Hořeňovský | 10 May 2020, 21:57:05 UTC | Unvirtual bunch off destructors of simple data classes | 10 May 2020, 21:57:05 UTC |
04cbbb8 | Martin Hořeňovský | 10 May 2020, 18:59:59 UTC | Replace getLineOfChars with non-templated, runtime version | 10 May 2020, 21:52:38 UTC |
f64487b | Martin Hořeňovský | 10 May 2020, 18:02:29 UTC | Move LazyExpr's and MessageInfo's implementation to the combined TU Some of the implementations were inlined instead. | 10 May 2020, 18:21:04 UTC |
27f1756 | Martin Hořeňovský | 10 May 2020, 17:19:42 UTC | Split out LazyExpr into its own header This enables us to avoid `catch_reporter_bases.hpp` being indirectly dependent on `catch_tostring.hpp`, cutting apart quite a bit indirect inclusions. | 10 May 2020, 18:21:02 UTC |
824ffe6 | Martin Hořeňovský | 10 May 2020, 16:41:14 UTC | Inline and default LazyExpression's constructor | 10 May 2020, 18:20:59 UTC |
d5e08a4 | Martin Hořeňovský | 10 May 2020, 16:24:53 UTC | Rename catch_assertionhandler -> catch_assertion_handler | 10 May 2020, 18:20:56 UTC |
ed967fd | Martin Hořeňovský | 10 May 2020, 14:44:27 UTC | Split MessageInfo into its own header This is first step towards splitting apart reporter implementation and `catch_string.hpp`. | 10 May 2020, 18:20:52 UTC |
7030d77 | Martin Hořeňovský | 10 May 2020, 14:35:24 UTC | Remove some superfluous includes from reporters | 10 May 2020, 18:20:47 UTC |
7efbc83 | Martin Hořeňovský | 10 May 2020, 08:20:48 UTC | Introduce combined TUs for compiling small TUs This should improve the compilation times by decreasing the number of TUs compiled, without making overly big TUs that would cause problems with heavy-tailed compilation times. There is one "combined TU" for the top level part, and each subpart, except for Reporters, which currently do not have any trivial TUs. | 10 May 2020, 13:37:29 UTC |
9e49827 | Martin Hořeňovský | 10 May 2020, 08:09:01 UTC | Move StringRef header to internals | 10 May 2020, 08:09:01 UTC |
14533f5 | Martin Hořeňovský | 10 May 2020, 05:32:40 UTC | Make Colour's op<< hidden friend | 10 May 2020, 05:32:40 UTC |
895d0a0 | Martin Hořeňovský | 10 May 2020, 05:22:11 UTC | Small improvements for StringRef * `operator[]` is constexpr * `operator<<` and `operator+=` are hidden friends | 10 May 2020, 05:22:11 UTC |
094d840 | Martin Hořeňovský | 10 May 2020, 04:57:02 UTC | Cleanup SourceLineInfo implementation Special member functions are now implicit, which should make them both noexcept and constexpr. The `operator<<` has been made into hidden friend as per best practices. | 10 May 2020, 04:57:02 UTC |
a595066 | Martin Hořeňovský | 10 May 2020, 04:54:19 UTC | Use internal linkage for float stringification helper | 10 May 2020, 04:54:23 UTC |
cb25c4a | Martin Hořeňovský | 09 May 2020, 19:14:43 UTC | Reinline some StringMaker impls | 09 May 2020, 19:26:42 UTC |
b93cf93 | Martin Hořeňovský | 09 May 2020, 19:07:42 UTC | Use UDLs to construct StringRefs for decomposed operators directly | 09 May 2020, 19:07:55 UTC |
eef6c9b | Martin Hořeňovský | 09 May 2020, 19:02:12 UTC | Microopt: stream single char instead of single char string | 09 May 2020, 19:02:12 UTC |
b5a287f | Martin Hořeňovský | 09 May 2020, 18:56:25 UTC | Make rest of the generators final | 09 May 2020, 18:56:25 UTC |
e1a0cce | Martin Hořeňovský | 09 May 2020, 17:33:47 UTC | Remove Clara from external folder As Clara is no longer maintained as a separate project, the implementation was moved to the internal subfolder of top-level folder. This removes one folder and avoids potential user confusion. Also simplified the convenience header checking script accordingly. | 09 May 2020, 17:40:57 UTC |
75b711a | Martin Hořeňovský | 07 May 2020, 19:30:43 UTC | Fix ODR violation because of name clash in matchers | 09 May 2020, 16:00:51 UTC |
db32550 | Martin Hořeňovský | 07 May 2020, 14:24:05 UTC | Remove catch_default_main.hpp There are two reasons for this: 1) It is highly unlikely that someone has use for this header, which has no customization points and only provides simplest possible main, and cannot link the static library which also provides a default main implementation. 2) It being a header was causing extra complications with the convenience headers, and our checking script. This would either require special handling in the checking script, or would break user's of the main convenience header. All in all, it is simpler and better in the long term to remove it, than to fix its problems. | 09 May 2020, 16:00:49 UTC |
e78b4f6 | Martin Hořeňovský | 06 May 2020, 19:23:10 UTC | Remove file list checking from CMake I do not think we need a safeguard against not including files in CMake anymore, and as it is, it caused annoying false positive about the default main implementation. | 06 May 2020, 19:23:13 UTC |
9766a7b | Martin Hořeňovský | 06 May 2020, 19:21:08 UTC | Fix installation of extra utilities | 06 May 2020, 19:21:08 UTC |
7c816c7 | Martin Hořeňovský | 06 May 2020, 18:49:15 UTC | Upload conan releases to catch2 remote (instead of Catch2) At some point we moved over to catch2:catchorg (notice lowercase `c`) instead of Catch2:catchorg, but we kept uploading the released packages to the upper-cased repository... Time to fix this, and then merge them again. | 06 May 2020, 18:53:42 UTC |
04c171f | Martin Hořeňovský | 06 May 2020, 16:17:51 UTC | Update CATCH_CONFIG_WINDOWS_CRTDBG docs to reflect new distribution | 06 May 2020, 16:17:51 UTC |
fe40503 | Martin Hořeňovský | 06 May 2020, 12:57:55 UTC | Add script checking convenience header correctness | 06 May 2020, 15:53:39 UTC |
2ccc48e | Martin Hořeňovský | 06 May 2020, 10:39:26 UTC | Require Python3 for running tests | 06 May 2020, 12:56:33 UTC |
6020f8f | Martin Hořeňovský | 05 May 2020, 19:07:16 UTC | Add convenience headers that include all headers in a subpart The naming scheme is simple, to include all matchers, include header `catch2/matchers/catch_matchers_all.hpp`. To include **everything**, include `catch2/catch_all.hpp`. | 06 May 2020, 09:21:46 UTC |
26622f1 | Martin Hořeňovský | 03 May 2020, 17:34:34 UTC | Fix Conan recipe Apparently cpp_info.libs is a list of _filenames_ and not _targets_. Oh well. | 03 May 2020, 17:34:37 UTC |
c086746 | Martin Hořeňovský | 03 May 2020, 17:21:58 UTC | Use main-as-static-lib in ExtraTests | 03 May 2020, 17:21:58 UTC |
0c223bb | Martin Hořeňovský | 03 May 2020, 17:01:21 UTC | Decrease chance of false positive in random generator testing | 03 May 2020, 17:01:21 UTC |
19ecad6 | Martin Hořeňovský | 03 May 2020, 16:54:38 UTC | Rename CMake/pkg-config target Catch2Main to Catch2WithMain This describes the reality better, as it also links in the rest of Catch2. The on-disk name of the static library remains just `Catch2Main`, as that is what it is -- single main function -- and on-disk artifacts cannot describe link dependencies. | 03 May 2020, 16:54:38 UTC |
33c58da | Martin Hořeňovský | 03 May 2020, 07:58:46 UTC | Remove duplicated test for #1027 | 03 May 2020, 07:58:46 UTC |
68061bb | Martin Hořeňovský | 03 May 2020, 07:54:18 UTC | Remove mentions of single header version from README | 03 May 2020, 07:54:18 UTC |
e83c9fb | Martin Hořeňovský | 03 May 2020, 07:49:59 UTC | Run unit tests in random order | 03 May 2020, 07:49:59 UTC |
b8221c8 | Martin Hořeňovský | 03 May 2020, 07:34:19 UTC | Remove the single_include folder It is no longer used by v3, and contains obsolete versions of the headers anyway. There are future plans for some sort of replacement, but those are, 1) in the future 2) different than the single header model so we can delete the folder completely. | 03 May 2020, 07:34:19 UTC |
31ff897 | Martin Hořeňovský | 21 April 2020, 17:30:38 UTC | Pick docs for v2.12.1 | 03 May 2020, 05:54:07 UTC |
5b8ccca | Martin Hořeňovský | 21 April 2020, 17:27:12 UTC | Add support for bitwise xor to the decomposer | 03 May 2020, 05:52:47 UTC |
4aefbbc | Martin Hořeňovský | 21 April 2020, 14:33:15 UTC | Pick docs for v2.12.0 | 03 May 2020, 05:49:05 UTC |
53434a2 | Martin Hořeňovský | 21 April 2020, 09:00:08 UTC | Support bitand and bitor in REQUIRE/CHECK This means that bit-flag-like types with conversion to bool can be asserted on, like so `REQUIRE(var & Flags::AddNewline)`. | 03 May 2020, 05:45:04 UTC |
2a93a65 | schallerr | 16 April 2020, 13:36:54 UTC | Support custom allocators in vector Matchers (#1909) -- Combined with f4fc2dab2c5bb8cab11b0a0dde8a8421076c30f9 during cherry-picking. | 03 May 2020, 05:40:04 UTC |
dd35430 | Martin Hořeňovský | 17 April 2020, 19:16:18 UTC | Add more tests for test spec parser Originally the tests were from #1912, but as it turned out, the issue was somewhere else. Still, the inputs provided were interesting, so they are now part of our test suite. | 02 May 2020, 16:24:07 UTC |
bbbc7a0 | Martin Hořeňovský | 01 May 2020, 18:26:40 UTC | Fix CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTION interaction with feature macro | 01 May 2020, 18:26:40 UTC |
89fab65 | Martin Hořeňovský | 15 April 2020, 14:19:54 UTC | Update documentation for --order | 01 May 2020, 12:46:14 UTC |
1bd7cac | John Else | 13 April 2020, 15:10:36 UTC | Use macro to determine whether std::uncaught_exceptions is available Catch assumes std::uncaught_exceptions is available whenever C++17 is available, but for macOS versions older than 10.12 this is not the case. Instead of checking the C++ version, use a macro to check whether the feature is available. | 01 May 2020, 12:45:56 UTC |
9b5fc9e | Martin Hořeňovský | 14 April 2020, 14:38:07 UTC | Randomize test for subset invariant random ordering of tests Also removed the iterative checking that seeds 1-100 do not create the same output, because it used too much runtime. | 01 May 2020, 12:45:36 UTC |
630ba26 | John Bytheway | 10 April 2020, 21:25:13 UTC | Add test for consistent random ordering -- Fixed up during cherrypicking | 01 May 2020, 12:30:01 UTC |
26b2c3e | John Bytheway | 10 April 2020, 00:17:05 UTC | Change random test shuffling technique (refactored) Previously a random test ordering was obtained by applying std::shuffle to the tests in declaration order. This has two problems: - It depends on the declaration order, so the order in which the tests will be run will be platform-specific. - When trying to debug accidental inter-test dependencies, it is helpful to be able to find a minimal subset of tests which exhibits the issue. However, any change to the set of tests being run will completely change the test ordering, making it difficult or impossible to reduce the set of tests being run in any reasonably efficient manner. Therefore, change the randomization approach to resolve both these issues. Generate a random value based on the user-provided RNG seed. Convert every test case to an integer by hashing a combination of that value with the test name. Sort the test cases by this integer. The test names and RNG are platform-independent, so this should be consistent across platforms. Also, removing one test does not change the integer value associated with the remaining tests, so they remain in the same order. To hash, use the FNV-1a hash, except with the basis being our randomly selected value rather than the fixed basis set in the algorithm. Cannot use std::hash, because it is important that the result be platform-independent. | 01 May 2020, 10:32:38 UTC |
87a8b61 | Martin Hořeňovský | 12 April 2020, 16:44:42 UTC | Fix bug in test spec parser handling of escaping in ORed patterns It did not clear out all of its internal state when switching from one pattern to another, so when it should've escaped `,`, it took its position from its position in the original user-provided string, rather than its position in the current pattern. Fixes #1905 | 01 May 2020, 07:56:34 UTC |
ca27b0d | Andrew Gaspar | 09 April 2020, 23:52:33 UTC | Remove usage of __builtin_constant_p under IBM XL | 01 May 2020, 07:31:59 UTC |
87c8055 | Moritz Haase | 02 April 2020, 12:22:01 UTC | Suppress clang-tidy warning about vararg usage in assertion macros CATCH_INTERNAL_IGNORE_BUT_WARN() introduced with b7b346c triggers clang-tidy warning 'cppcoreguidelines-pro-type-vararg' for every usage of assertion macros like CHECK() and REQUIRE(). Silence it via NOLINT in the '#if defined(__clang__)' block only, as clang-tidy honors those. | 01 May 2020, 07:31:48 UTC |
46cc551 | Phoebe | 31 March 2020, 17:12:10 UTC | Add vcpkg installation instructions (#1898) * Add vcpkg installation instructions * Add index | 01 May 2020, 07:31:41 UTC |
f34aacf | Mark Gillard | 29 March 2020, 07:54:16 UTC | Added toml++ to opensource-users.md | 01 May 2020, 07:31:12 UTC |
0d3e933 | Mark Gillard | 29 March 2020, 07:53:11 UTC | Fix alphabetical ordering of opensource-users.md | 01 May 2020, 07:31:03 UTC |
02a9985 | pi1024e | 23 March 2020, 17:10:38 UTC | C-header updates | 01 May 2020, 07:30:50 UTC |
8ea45bf | Invincible | 23 March 2020, 02:24:10 UTC | Change PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME conditional. When no TEST_CASE_METHOD function, there is no fixture to get. | 01 May 2020, 07:30:31 UTC |
beb8c3a | Joel Uckelman | 19 March 2020, 12:31:22 UTC | Fixed typo in "benchmark name" column width calculation. Closes #1885. | 01 May 2020, 07:30:17 UTC |
656b15d | Martin Hořeňovský | 19 March 2020, 12:50:19 UTC | Pick doc changes for v2.11.3 | 01 May 2020, 07:28:17 UTC |
5198fd3 | Martin Hořeňovský | 19 March 2020, 12:32:45 UTC | Fix compilation error when lambdas are used in assertions This is a partial revert of b7b346c3e5603. | 01 May 2020, 07:24:26 UTC |
08f8a81 | Martin Hořeňovský | 19 March 2020, 11:37:51 UTC | Picking v2.11.2 docs changes | 30 April 2020, 19:44:16 UTC |
0d8eeec | Martin Hořeňovský | 19 March 2020, 11:36:30 UTC | Move all scripts to Python3 | 29 April 2020, 19:28:52 UTC |
d3c0b36 | Martin Hořeňovský | 19 March 2020, 11:32:34 UTC | Update wandbox script to use https endpoint and Python3 | 29 April 2020, 19:28:34 UTC |
95a2e54 | Martin Hořeňovský | 15 February 2020, 20:18:56 UTC | Different approach to proper colouring of filters | 29 April 2020, 19:28:25 UTC |
6badd7d | Till Hofmann | 10 February 2020, 13:52:35 UTC | Switch back to uncolored output after printing filters After printing the list of filters, switch back from yellow to black before printing a newline to avoid the remaining output to be colored in yellow. | 29 April 2020, 19:28:18 UTC |
60cfaa3 | Martin Hořeňovský | 18 March 2020, 19:59:25 UTC | Make warnings in assertions fire for GCC/Clang again The old code caused warnings to fire under MSVC, and Clang <3.8. I could not find a GCC version where it worked, but I assume that it did at some point. This new code causes all of MSVC, GCC, Clang, in current versions, to emit signed/unsigned comparison warning in test like this: ```cpp TEST_CASE() { int32_t i = -1; uint32_t j = 1; REQUIRE(i != j); } ``` Where previously only MSVC would emit the warning. Fixes #1880 | 29 April 2020, 19:27:57 UTC |
38a0dfc | Julius Hülsmann | 17 March 2020, 14:43:05 UTC | Update tutorial.md Fix: typo; remove trailing "," | 29 April 2020, 19:17:54 UTC |
b014d98 | Julius Hülsmann | 17 March 2020, 11:54:04 UTC | Update slow-compiles.md Add missing "." | 29 April 2020, 19:17:30 UTC |
7a0f8ff | magnus.ornebring | 10 March 2020, 10:25:13 UTC | Add king as user | 29 April 2020, 14:55:03 UTC |
efbfaa1 | khyperia | 26 February 2020, 14:32:34 UTC | Don't cast nanoseconds to integers when writing output | 29 April 2020, 14:54:46 UTC |
c4e5b05 | khyperia | 24 February 2020, 11:21:32 UTC | include <iterator> in catch_stats.hpp needed for std::back_inserter on some platforms | 29 April 2020, 14:54:39 UTC |
0fdeb10 | Martin Hořeňovský | 29 April 2020, 13:36:40 UTC | Cleanup how configuration-dependent test macros are defined | 29 April 2020, 13:36:40 UTC |
783ab5e | Martin Hořeňovský | 29 April 2020, 12:02:53 UTC | Move around message macros and implementation | 29 April 2020, 12:02:53 UTC |
8d50f04 | Martin Hořeňovský | 26 April 2020, 19:33:55 UTC | Move around matcher macro implementation | 26 April 2020, 19:33:55 UTC |
804e2df | Martin Hořeňovský | 26 April 2020, 17:24:36 UTC | Move Benchmarking macros to catch_benchmark.hpp | 26 April 2020, 17:24:36 UTC |
0470794 | Martin Hořeňovský | 26 April 2020, 14:25:43 UTC | Split TEMPLATE_TEST* macros into their own set of files These files are not included by the default `#include <catch2/catch_test_macros.hpp>` path, so that users do not have to pay for them if they do not use them. Follow up is to split out the small part of `catch_preprocessor.hpp` used by the default test macros (AFAIK, it is just `INTERNAL_CATCH_REMOVE_PARENS` macro), so that it is not included by the default path either. Also fixes #1892 by providing the missing macros. | 26 April 2020, 14:25:43 UTC |
5150fa4 | Martin Hořeňovský | 26 April 2020, 11:32:17 UTC | Rename catch_capture.hpp to more descriptive catch_test_macro_impl.hpp | 26 April 2020, 11:32:17 UTC |
d776a93 | Martin Hořeňovský | 25 April 2020, 16:18:45 UTC | Development build defaults to off | 25 April 2020, 16:18:45 UTC |
c078373 | Martin Hořeňovský | 25 April 2020, 16:13:17 UTC | Rename internal macro for suppression of unused variable warnings | 25 April 2020, 16:13:17 UTC |
517839f | Martin Hořeňovský | 25 April 2020, 12:07:50 UTC | Small cleanup of fatal condition handler | 25 April 2020, 12:07:50 UTC |
b955355 | Martin Hořeňovský | 24 April 2020, 19:13:04 UTC | Avoid recompiling main for each example Instead, link against `Catch2Main` CMake target as intended. | 24 April 2020, 19:13:07 UTC |
c5ec936 | Martin Hořeňovský | 24 April 2020, 19:09:06 UTC | Inline TagAlias constructor It is trivial enough that the function call is not worth it, and lets us remove one TU from compilation. | 24 April 2020, 19:09:10 UTC |
8d44c24 | Martin Hořeňovský | 24 April 2020, 18:58:29 UTC | Add some explanatory comments to ErrnoGuard | 24 April 2020, 19:04:54 UTC |
7c97554 | Martin Hořeňovský | 24 April 2020, 18:42:52 UTC | Remove Obj-C(++) support | 24 April 2020, 18:42:52 UTC |
e1e6872 | Martin Hořeňovský | 30 March 2020, 08:34:21 UTC | Standardize header names and file locations This is both a really big and a really small commit. It is small in that it only contains renaming, moving and modification of include directives caused by this. It is really big in the obvious way of touching something like 200 files. The new rules for naming files is simple: headers use the `.hpp` extension. The rules for physical file layout is still kinda in progress, but the basics are also simple: * Significant parts of functionality get their own subfolder * Benchmarking is in `catch2/benchmark` * Matchers are in `catch2/matchers` * Generators are in `catch2/generators` * Reporters are in `catch2/reporters` * Baseline testing facilities are in `catch2/` * Various top level folders also contain `internal` subfolder, with files that users probably do not want to include directly, at least not until they have to write something like their own reporter. * The exact files in these subfolders is likely to change later on Note that while some includes were cleaned up in this commit, it is only the low hanging fruit and further cleanup using automatic tooling will happen later. Also note that various include guards, copyright notices and file headers will also be standardized later, rather than in this commit. | 24 April 2020, 16:58:44 UTC |
3836aa9 | Martin Hořeňovský | 18 April 2020, 13:41:53 UTC | Remove catch_user_interfaces It used to be a file that would collect interfaces we always wanted to provide to users, so that the single header stitching script would place them in the common part of the single header version. As v3 is moving to separate headers model, the file is no longer useful. | 24 April 2020, 13:34:12 UTC |
3f2ada0 | Martin Hořeňovský | 06 April 2020, 08:09:16 UTC | Remove unused catch_impl.hpp header It became useless when we moved away from the single-header model, because it was used an entry point for stitching CPP into the single header file. | 24 April 2020, 12:25:33 UTC |
7892954 | Martin Hořeňovský | 05 April 2020, 16:12:09 UTC | Remove global warning manipulation headers They were unused except for one test file anyway. | 05 April 2020, 17:14:16 UTC |
54a7eb1 | Martin Hořeňovský | 04 April 2020, 19:53:23 UTC | Rename reporters to use .hpp suffix I want to standardize _all_ of Catch2 headers on the `.hpp` suffix. | 05 April 2020, 17:10:57 UTC |