https://github.com/philsquared/Catch

sort by:
Revision Author Date Message Commit Date
b9853b4 Bump version to v3.0.0 preview 3 08 October 2020, 13:26:30 UTC
853565b Pick release notes for v2.13.2 08 October 2020, 10:51:07 UTC
3f9e779 Improve detection of std::uncaught_exceptions support The problem was that Catch2 did not reliably include `<exception>` before it checked for the feature test macro for `std::uncaught_exceptions`. To avoid overhead of including `<exception>` everywhere, the configuration check was split out into a separate header. Closes #2021 08 October 2020, 10:39:50 UTC
863cc6a Add WORKING_DIRECTORY to CatchAddTests.cmake commands 08 October 2020, 09:41:35 UTC
b601b7f Workaround AppleClang bug by renaming TestHasher constructor argument As far as I understand the standard, if there is a function called `rng` in the global namespace, and a function argument called `rng`, then the argument should shadow the function. This then means that uses of `rng` inside the function should refer to the argument. This is not the case for AppleClang 12.0.0. Luckily the workaround is simple enough; just rename the argument. Given that the function is 3 lines and uncomplicated, the change of the name doesn't really affect readability. Still, WTF AppleClang? Closes #2030 08 October 2020, 09:41:05 UTC
b841650 Add missing syntax highlighting tag 08 October 2020, 09:37:31 UTC
1d01464 Support template test cases in ParseAndAddCatchTests * Change regex to allow parentheses inside the test macro for a type list * Append a wildcard to the CTestName if the test case is a template * Also change the regular expression so parentheses are allowed in names (fixes #1848) 08 October 2020, 09:37:11 UTC
c522e88 Add REPORTER and OUTPUT_* args 08 October 2020, 09:35:42 UTC
b1df96e Docu/Show how to use CMake FetchContent (#2028) 08 October 2020, 09:35:18 UTC
a4dfcf9 Disable __builtin_constant_p when compiling with nvcc 08 October 2020, 09:34:57 UTC
9e172c7 fixes bug in example - undeclared identifier j was not declared in `SECTION("two")` 08 October 2020, 09:34:25 UTC
b0214ff Make experimental capture work on Windows with read-write temp file behavior 08 October 2020, 09:28:50 UTC
2454cff add fuzzer for columns 07 October 2020, 15:38:27 UTC
0098a76 first take basing fuzz on v3 07 October 2020, 15:38:27 UTC
340ff00 Rewrite contributing docs for v3 06 October 2020, 10:36:20 UTC
60dfec5 Provide 1 .hpp + 1 .cpp distribution of Catch2 This commits also adds a script that does the amalgamation of headers and .cpp files into the distributable version, removes the old `generateSingleHeader` script, and also adds a very simple compilation test for the amalgamated distribution. 09 September 2020, 11:02:50 UTC
8b89a60 Reenable VS2017+examples+extra-tests build on AppVeyor 08 September 2020, 20:20:12 UTC
99d70c0 Remove superfluous whitespace before #include 07 September 2020, 18:01:04 UTC
d1625f3 Pick release notes from v2.13.1 07 September 2020, 12:34:36 UTC
8f44e09 Remove superfluous values The `0`s were needed for the expansion of parameter pack for the sake of expander. Now when we have `index++` it is no more needed. 07 September 2020, 12:30:58 UTC
31d4831 Support sentinel-based ranges in default stringify (#2004) 07 September 2020, 12:23:47 UTC
08fb5cb Fix typo in generators docs 07 September 2020, 11:02:38 UTC
5ad1a4f Issue 1992: Better c++17 std::byte detection This fixed buld errors for ubuntu-16 + clang and similar situations where C++17 is supported in the compiler but not the default C++ standard library. 07 September 2020, 11:01:51 UTC
2c1c02f Update ParseAndAddCatchTests.cmake 07 September 2020, 11:00:55 UTC
8851e77 console colour: fix unintended colouring of user's stderr on POSIX At some places, the colour reset code is printed after a newline. Since the default output buffering to console is line-based, the reset code is not actually written out. If messages from user code are printed to stderr (different stream, same console), they are printed before the colour reset code, and thus they are coloured. Explicitly flushing the stream after writing the colour escape code solves this. 07 September 2020, 09:53:45 UTC
2d4f8ac Disable problematic test on Windows 06 September 2020, 18:41:58 UTC
9155a9f Fix -Wparentheses issue on g++9 06 September 2020, 14:02:01 UTC
cc18bd7 Sweep out Wshadow Most of the changes are completely pointless renaming of constructor arguments so that they do not use the same name as the type members, but :shrug: Closes #2015 06 September 2020, 11:11:42 UTC
90aeffb Add standardized copyright notice + SPDX identifier to source files This should also be done for test files, but that has lower priority. 30 August 2020, 13:43:45 UTC
c2453c2 Remove the rest of old-style copyright headers 30 August 2020, 12:45:05 UTC
a822cb9 Standardize include guard patterns to FILE_NAME_EXTENSION_INCLUDED This commit also strips the old copyright comment header in touched files, as those will also be replaced with a more standardized and machine-friendly version. 30 August 2020, 12:09:27 UTC
c26693d Fix doccomment on shouldShowDuration reporter helper 29 August 2020, 17:55:17 UTC
33ad1ee Split EventListener base from streaming_base.hpp The base was also renamed from `TestEventListenerBase` to `EventListenerBase`, and modified to derive directly from the reporter interface, rather than deriving from `StreamingReporterBase`. 29 August 2020, 17:09:54 UTC
f9fdc96 Push LazyStat down into catch_reporter_streaming_base.hpp 24 August 2020, 09:27:21 UTC
360b826 Refactor serializeFilters implementation 24 August 2020, 08:19:26 UTC
2a8e317 Split various reporter helpers out from streaming_base.hpp Due to also adding a new TU, there is no improvement to the compilation times of the static library, but it improves the compilation times of consumer's reporter TUs. 24 August 2020, 08:19:24 UTC
6a08d40 Split out ReporterFactory out of catch_interfaces_reporter.hpp 23 August 2020, 20:35:01 UTC
9677df6 Split IReporterRegistry into its own header file Doing this removes `<map>` from the include set of the base reporter interface, and thus from bunch more TUs. This provides about 1.5% improvements in the debug build of the static library, and 1% in release build. 23 August 2020, 19:01:04 UTC
ed7eaf2 Split catch_reporter_bases.hpp into two separate headers Each of the two reporter bases now has its own header file, and cpp file. Even though this adds another TU to the compilation, the total CPU time taken by compilation is reduced by about 1% for debug build and ~0.5% for optimized build of the main library. (The improvement would be roughly doubles without splitting the TUs, but the maintainability hit is not worth it.) The code size of the static library build has also somewhat decreased. Follow up: Introduce combined TU for reporters, and further split apart the catch_reporter_streaming_base.hpp header into its constituent parts, as it still contains a whole bunch of other stuff. 23 August 2020, 05:30:26 UTC
2455949 Anchor some Clara vtables into the cpp file Anchoring the vtables does 2 things 1) Fixes some instances of `-Wweak-vtables` 2) Decreases code size and linker pressure However, there are still some unanchored ones, and thus we have to keep suppressing `-Wweak-vtables` warning for Clang. 20 August 2020, 21:16:11 UTC
7500ad1 Turn Clara::Detail::ResultBase::Type into its own enum class 20 August 2020, 20:59:06 UTC
1a97af4 Cleanup some stuff found by MSVC's /analyze * Added some missing `noexcept`s on custom destructors. * Fixed `std::move` being called on a const-reference. * Initialized `ScopedMessage::m_moved` in class definition, instead of doing so in constructors explicitly. * Turned some `enum`s into `enum class`es. * Initialized `StreamingReporterBase::currentTestCaseInfo` in class definition. * Some cleanups in SelfTest code. 20 August 2020, 18:42:21 UTC
2e480b6 Use StringRef for CasedString::caseSensitivitySuffix return type 18 August 2020, 19:02:34 UTC
f16be40 Make XmlEncoding tests slightly more efficient 18 August 2020, 19:02:31 UTC
e418e75 Turn CaseSensitive into proper enum class 18 August 2020, 19:02:30 UTC
6a46b34 Split out CaseSensitive enum out of catch_common.hpp Only very few places actually use it, so there is no need to have it be central to everywhere. 18 August 2020, 19:02:25 UTC
e7eb749 Split the NonCopyable helper out of catch_common.hpp 18 August 2020, 19:02:23 UTC
c1bb699 Remove superfluous catch_reporter_registrars.hpp includes from reporters The includes were an artifact of the old design where the built-in reporter TUs used autoregistration to add the reporters to the factory. Because the current design is to add them explicitly in the central reporter factory TU, the includes are useless. 14 August 2020, 07:33:53 UTC
bf1e902 Remove <algorithm> include from catch_commandline.cpp 14 August 2020, 07:33:42 UTC
49b55d5 Prune includes in catch_run_context.cpp 14 August 2020, 07:33:28 UTC
07fb96d Don't include catch_random_number_generator.hpp in catch_session.cpp 14 August 2020, 07:33:16 UTC
34d9a58 Cleanup includes in catch_list.cpp 14 August 2020, 07:32:59 UTC
05d7014 ApproxMacher uses Approx's overloads for double directly This saves a tiny little bit of compilation times when the `ApproxMatcher` is used and `epsilon`, `margin`, or `scale` are used to customize its behaviour. 11 August 2020, 17:07:37 UTC
aa28a91 Turn UseColour into enum class 11 August 2020, 15:47:54 UTC
b053140 Turn RunTests into TestRunOrder enum class 11 August 2020, 15:47:00 UTC
60cc4c2 Turn ShowDurations into an enum class 11 August 2020, 13:03:37 UTC
6dc8345 IStreamingReporter::list* only uses IConfig instead of full Config As the full `Config` is not needed, the TUs implementing the `list*` functions can require the less heavy header `catch_interfaces_config.hpp` instead of the much heavier `catch_config.hpp`. This commit also fixes up some other TUs that include `Config`, while using just `IConfig`, to cleanup the includes further. 11 August 2020, 07:39:00 UTC
24b83ed Clara cleanups * Clara is now split between a header and a cpp file. * Removed the deprecated `+` and `+=` operators for composing a parser. * Renamed `clara` and `detail` namespaces to be inline with the rest of Catch2 (they are now `Clara` and `Detail` respectively). * Taken most of user-exposed types out of the `Detail` namespace completely (instead of using `using` directives to bring them into the outer namespace). 10 August 2020, 18:30:40 UTC
b824d06 Fixup missing transitive includes Found after updating to newest MSVC... 10 August 2020, 18:28:14 UTC
e7aa432 Split TextFlow out from Clara Now that it has its own header, various reporter TUs that want to format text do not have to also include Clara. Together with outlining implementations from a header into a separate TU, this has noticeably improved the compilation times of the testing impl. As part of this split, I also implemented some improvements to the TextFlow code in comparison to the upstream code. These are: * Replaced the `Spacer` type with a free function that constructs special `Column` that does the same thing. * Generic performance improvements, such as eliminating needless allocations, reserving space in needed allocations, and using smarter algorithms in some places. * Because `Column` only ever stored 1 string in its vector, it now holds the string directly instead. 03 August 2020, 21:40:14 UTC
81aa2d5 Replace ostringstream with ReusableStringStream in ConsoleReporter 03 August 2020, 20:59:43 UTC
9d591f1 Allow explicitly setting ReusableStringStream's serialized data 03 August 2020, 20:59:09 UTC
a4ac07d Split out default CATCH_CONFIG_CONSOLE_WIDTH into its own header This means that code that uses it no longer has to include all of catch_config.hpp, which seems to provide significant reduction in size of unoptimized compilation of the final static library. 03 August 2020, 20:57:43 UTC
8b0845b Split catch_config.hpp out of reporter bases 30 July 2020, 06:46:07 UTC
c503774 Avoid copying SectionInfo while construction Section 29 July 2020, 19:51:10 UTC
9d6ac62 Remove unused member from Section 29 July 2020, 19:51:08 UTC
ed0ea30 Apply some IWYU suggestions This is not nearly all of them, because IWYU does not support the way Catch2 manages includes -- it expects that non-system includes are done using `#include "foo/bar/baz.hpp"`, while Catch2 uses `<foo/bar/baz.hpp>`. This causes trouble, because IWYU suggests removing every single internal header, and then adding them again, but using `""` in the include directive... the resulting suggestions cannot be used without a lot of manual work, as they are largely bogus. For bonus points, IWYU also _loves_ to suggest kinda-random stdlib headers for `size_t` and similar. Still, the resulting inclusion graph is somewhat better than it was before. 29 July 2020, 19:51:05 UTC
35098a6 Sanitize includes in random_number_generator.cpp I have no idea how those got there, but now its dependency graph is much saner. 29 July 2020, 12:58:14 UTC
ba57c17 Remove some extraneous includes from run_context.hpp 29 July 2020, 12:54:55 UTC
4e0af77 Push includes for TestCaseInfo down into reporter TUs 29 July 2020, 12:43:05 UTC
eaf7113 Cleanup stdlib includes in reporter_bases.hpp 29 July 2020, 10:50:51 UTC
d090074 Devirtualize handling of ReporterPreferences The new scheme is that there is one protected member instance of `ReporterPreferences` in the `IStreamingReporter` base class, and derived classes can modify it to express their own preferences. Retrieving the preferences is now a non-virtual operation, which makes it much cheaper to read them frequently. Previously, we avoided doing so by caching the preferences in another variable, but we still read them at least once per test case run. 28 July 2020, 07:24:57 UTC
d218d6f Avoid recalculating string-literal size on root tracker construction This is a tiiiiiiny performance optimization, but it's free. 27 July 2020, 18:08:44 UTC
ef92178 Devirtualize nested tracker handling 27 July 2020, 17:53:54 UTC
125d4b4 Devirtualize test case registration 27 July 2020, 06:49:49 UTC
c9b4867 Move some impls of StreamingReporterBase members to .cpp file 27 July 2020, 06:46:35 UTC
258cac6 Move impls of CumulativeReporterBase member functions to .cpp file `catch_reporter_bases.hpp` turned out fairly expensive for parsing when building the main library, and the significant amount of code in headers likely doesn't help. Since the reason it is in the header is legacy from CRTP reporter bases, moving as much of the implementations to the .cpp file is free compilation perf. 27 July 2020, 05:32:21 UTC
5f6990d Only start Section's timer if the duration will be used This is a small potential runtime optimization on systems with virtual syscalls, and a significant runtime optimization on systems without. 26 July 2020, 19:33:49 UTC
5ca6882 Refactor how shortcircuiting of old style matchers is tested 26 July 2020, 19:31:29 UTC
ac54ba7 Add test for shortcircuiting behaviour of generic matcher combinators 26 July 2020, 19:24:05 UTC
95c0c88 Fix CMake add test helper for CMake 3.18.0 With CMake 3.18.0 the `add_test(NAME)` handling changed. The escaped double quotes confuse the new call. Work around this upstream change. fixes: https://github.com/catchorg/Catch2/issues/1984 26 July 2020, 13:15:50 UTC
6efeecc Cherry-pick doc updates for v2.13.0 26 July 2020, 13:14:38 UTC
6b3c563 Remove pointless CompactReporter::getPreferences override 26 July 2020, 12:07:19 UTC
a004423 Improve documentation for --min-duration 26 July 2020, 12:06:52 UTC
4b344f1 Document GENERATE's new usage between SECTIONs 26 July 2020, 12:06:34 UTC
87d0197 Update catch_reporter_tap.hpp TAP format requires all results to be reported. Removed extraneous preferences function (handled by parent) Incorporated fix from 3d9e7db2e0fff8fc2edcf59d24351f3937e3ac62 Simplified total printing 26 July 2020, 12:00:10 UTC
4565b82 Modify generator tracking to allow GENERATEs between SECTIONs This means that code such as ```cpp TEST_CASE() { SECTION("first") { SUCCEED(); } auto _ = GENERATE(1, 2); SECTION("second") { SUCCEED(); } } ``` will run and report 3 assertions, 1 from section "first" and 2 from section "second". This also applies for greater and potentially more confusing nesting, but fundamentally it is up to the user to avoid overly complex and confusing nestings, just as with `SECTION`s. The old behaviour of `GENERATE` as first thing in a `TEST_CASE`, `GENERATE` not followed by a `SECTION`, etc etc should be unchanged. Closes #1938 26 July 2020, 09:35:06 UTC
250d9b9 Fix how testRandomOrder.py builds tag arguments 26 July 2020, 08:51:55 UTC
90d6fd8 Increase tolerances in --min-duration tests The underpowered and oversubscribed CI servers are hell. 26 July 2020, 08:48:03 UTC
13917c4 --min-duration is overriden by -d no 26 July 2020, 08:48:01 UTC
e6d947f Refactor tests for duration reporting threshold 26 July 2020, 08:47:58 UTC
80b0d69 Add --min-duration option A test runner already has a --durations option to print durations. However, this isn't entirely satisfactory. When there are many tests, this produces output spam which makes it hard to find the test failure output. Nevertheless, it is helpful to be informed of tests which are unusually slow. Therefore, introduce a new option --min-duration that causes all durations above a certain threshold to be printed. This allows slow tests to be visible without mentioning every test. 26 July 2020, 08:47:53 UTC
36131f7 Escaping literal "*" ("times") to fix markdown 24 July 2020, 20:36:58 UTC
f520182 Cherry pick release notes for v2.12.4 24 July 2020, 20:36:13 UTC
b32d2fa Update FUNDING file (-Patreon, +PayPal) 24 July 2020, 20:35:17 UTC
a25c1a2 Fix for macOS on ARM 24 July 2020, 20:34:22 UTC
e28018c Cherry pick release notes for v2.12.3 24 July 2020, 20:33:59 UTC
2a25a26 Cherry pick release notes for v2.12.2 24 July 2020, 20:33:26 UTC
7f58840 Add OverallResultsCases element to XML reporter 24 July 2020, 20:30:28 UTC
3b0f8c7 Replace a TODO comment in examples 22 July 2020, 19:49:58 UTC
back to top