https://github.com/philsquared/Catch

sort by:
Revision Author Date Message Commit Date
37a0e9f Add test for AND_GIVEN and update the baselines 02 September 2018, 13:38:56 UTC
8ba957b Add BDD AND_GIVEN based macros issue #1360 It is possible to have multple given contexts in a single BDD scenario; if you have to type 'and' in the GIVEN description; it's very likely you need an AND. A generic AND is not possible, thus a AND_GIVEN is added to complement the AND_WHEN and AND_THEN. Can be used without needing to increase indent: SCENARIO("...") { GIVEN("...") AND_GIVEN("...") { WHEN("...") { THEN("...") { // ... } } } } would correctly output, when requested/needed: Given: ... And given: ... When: ... Then: ... The padding had to be increased by a character in the output message, to continue to be uniform. 14 August 2018, 10:30:42 UTC
c9de7dd Optimize SourceLineInfo::operator< with short-circuiting In case of 2 instances of SourceLineInfo constructed in the same file, they will have the same `file` pointer (even at O0). Thus, we can check if they are equal before calling potentially pointless `strcmp`. 23 July 2018, 18:46:42 UTC
52cbb50 Avoid copying StringRef In theory the copy is cheap (couple of pointers change), but tests are usually compiled in Debug mode/with minimal optimizations, which means that most users will still have to pay the cost for those function calls. 23 July 2018, 12:04:43 UTC
83bfae1 Construct StringRef from constant strings in macros directly using UDL This avoids having to call `strlen` to get the constant string's length and thus should improve performance. 23 July 2018, 12:00:45 UTC
f7f592d Introduce "C-namespaced" UDL for StringRef 23 July 2018, 12:00:45 UTC
78804ea Replace std::string with StringRef in MessageInfo for macro capture Because the macro name is compile-time constant, we do not have to worry about lifetimes and will avoid allocation in case of missing SSO or long macro name. 23 July 2018, 12:00:44 UTC
b932847 Update gitattributes 23 July 2018, 08:15:52 UTC
15cf3ca v2.3.0 23 July 2018, 08:12:15 UTC
12a8dfa Fix Listening reporter use of ReporterPreferences 22 July 2018, 20:58:18 UTC
797d3b0 Reinstate CATCH_BUILD_TESTING CMake option 22 July 2018, 16:01:42 UTC
82b8744 Direct construct empty StringRef in test macros 22 July 2018, 12:13:34 UTC
ce80358 Document Approx's UDL support 15 July 2018, 15:38:57 UTC
283e2e6 Add float/int literal for Approx 15 July 2018, 15:03:12 UTC
d6c7392 Add a new reporter customization point: reporting all assertions By opting the JUnit and XML reporters into it, we no longer run into problem where they underreport the results without `-s` flag. Related to #1264, #1267, #1310 14 July 2018, 18:51:02 UTC
9ee4c1d Allow disabling the implementation of the new output capture As it turns out, some platforms do not provide things like `dup`, or `std::tmpfile`, but they do provide streams... Closes #1335 Related to #1311 13 July 2018, 18:27:00 UTC
7679060 Properly unset tags variable. 10 July 2018, 10:48:14 UTC
e21c6aa Fix the second Multiple-file example file link Previously it pointed to the first file as well. 09 July 2018, 13:47:03 UTC
7a59d50 Link the example from `CATCH_CONFIG_NOSTDOUT` documentation 08 July 2018, 11:58:44 UTC
c8941cc Add an example on providing streams with `CATCH_CONFIG_NOSTDOUT` Related to #1037 Closes #1290 08 July 2018, 11:38:42 UTC
5eeb6aa Update Approx documentation Fixes #1328 05 July 2018, 15:28:00 UTC
1c1b447 Properly guard CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER definition 03 July 2018, 07:29:26 UTC
e1d8117 Add -Wmissing-declarations to the SelfTest project This required some clean-up in our test files 02 July 2018, 15:36:13 UTC
4846ad5 Remove obsolete test `REQUIRE`, `CHECK` and many other macros already support expressions with multiple template parameters without parenthesizing. 02 July 2018, 15:32:47 UTC
ff2b3c8 Add comment explaining why we leak -Wparentheses under g++ 02 July 2018, 15:28:45 UTC
b55424d Stop -Wunused-variable suppression leaking out of Catch's header Previously it was leaking to suppress warnings on `SECTION`s, but Clang's support for `_Pragma` is solid, so we can suppress those locally. Fixes #1317 02 July 2018, 15:28:29 UTC
e69c7ce Add Discord badge to README 01 July 2018, 18:48:21 UTC
7be8ba3 Install contrib when installing Catch using conan Closes #1322 01 July 2018, 17:04:50 UTC
ad12096 fix link to single header version catch.hpp 01 July 2018, 10:37:13 UTC
f460a7d Fix documentation of CATCH_CONFIG_FAST_COMPILE Related to issue #1279 30 June 2018, 10:31:46 UTC
ebf8900 Update thread safety documentation Closes #1302 28 June 2018, 20:35:42 UTC
7d00cb8 Remove unused benchmark project 28 June 2018, 08:53:25 UTC
e69afb6 Remove removed macros from documentation 28 June 2018, 07:43:10 UTC
9fb38fc Restored description field in SectionInfo for now - but marked it deprecated 25 June 2018, 19:18:41 UTC
0f49a60 Added DYNAMIC_SECTION to CATCH_CONFIG_DISABLE builds 25 June 2018, 18:22:57 UTC
5c0efa1 Added DYNAMIC_SECTION and implemented GIVEN/ WHEN/ THEN in terms of it 25 June 2018, 18:19:21 UTC
1579744 Deprecated description in SECTION (still accepts it, for now, but doesn't use it anywhere) 25 June 2018, 18:04:29 UTC
9b0e740 Changed approval tests path to match changes in CMakeLists.txt 25 June 2018, 17:38:08 UTC
1af60ef Separate Catch2Config from targets This lets us add the installed helper scripts to the cmake module path, letting CMake users just include them after requiring Catch2 package. 24 June 2018, 10:32:22 UTC
3743295 Stop conan package from installing Catch's helpers 24 June 2018, 10:32:22 UTC
ed582bd Include contrib in installation 24 June 2018, 10:32:22 UTC
6c1145d Improve pkg-config integration a bit 24 June 2018, 10:32:22 UTC
b957eb4 Improve conan integration by using cmake install 24 June 2018, 10:32:22 UTC
0eb99fb Add option to not install documentation 24 June 2018, 10:32:22 UTC
bf22158 Update CMake and build documentation 24 June 2018, 10:32:22 UTC
44722f9 Integrate CMake with `<catch2/catch.hpp>` include paths This also goes for pkg-config installed by our CMake installation. This includes * Updating CMake version on Travis * Adding a `Catch2` subfolder to the `single_include/` folder to provide this include path both _inside_ the repository, and _outside_. * Updated examples to build with the new paths * Other general CMake cleanup 24 June 2018, 10:32:22 UTC
35a57b0 Replaced use of std::rand with std::mt19937 This uses a global instance of the RNG 15 June 2018, 13:35:47 UTC
1dce91d Reverted removal of #ifdef for chrono converters, and fixed in OC project a different way - seems the #ifdef was necessary after all, because of the difference in the way the cpp files are included in the full project vs the single include - in the OC project I moved the #include of catch_tostring.cpp first. That solves the project for now, but is a brittle solution 12 June 2018, 14:37:06 UTC
b8553d6 Moved inline functions in cpp files into anon namespaces 12 June 2018, 13:09:30 UTC
5046077 Updated XCode build settings 12 June 2018, 12:43:28 UTC
788f812 Fixed errors and warnings on OC project 12 June 2018, 12:42:33 UTC
c5301bf Updated release process documentation to reflect vcpkg autoupdate 11 June 2018, 20:44:14 UTC
d2a130f v2.2.3 06 June 2018, 21:19:06 UTC
7be8a41 Fix ambiguity in stringification Happening when using clang and templated operators, clang cannot decide between the operator provided by ReusableStringStream and the one provided by the value value as both are templates. This is easily solved by calling the operator<< through the member syntax. Fixes #1285 06 June 2018, 20:33:03 UTC
021fcee Finish fixing invalid compilation using MinGW 04 June 2018, 21:49:40 UTC
3a47b8b Add missing catch_platform include to compiler capabilities This was removed in 64be2ad, to fix OS X approval tests. At the time I couldn't investigate because I didn't have access to OS X, but this fixed it (and since we don't have MinGW in CI, the breakage went unnoticed). As it turns out, piece-wise compilation of the Compact reporter had broken OS X detection for a long time, and fixing it was what broke the approvals. After the approval scripts were changed to compensate, this change passes approval tests and fixes 04 June 2018, 21:19:55 UTC
2771a8e Normalize OS X specific pass/fail strings in approvals 04 June 2018, 21:19:55 UTC
7abd7db Fix minor typo in the documentation 01 June 2018, 20:24:49 UTC
88d7b8d Ensure stack size for POSIX signal handling is sufficient Until now, the stack size for POSIX signal handling was determined by the implementation defined limit `STKSZ`, which in some cases turned out to be insufficient, leading to stack overflow inside the signal handler. The new size, which was determined experimentally, is the larger of 32kb or `MINSTKSZ`. Fixes #1225 29 May 2018, 20:29:04 UTC
df0b0e6 Make FALLBACK_STRINGIFIER documentation more explicit Related to #1024 14 May 2018, 19:03:07 UTC
4c7b7d0 Move FALLBACK_STRINGIFIER to before the enum and range fallbacks This should align more closely with the intended semantics, where types without `StringMaker` specialization or `operator<<` overload are passed down to the user defined fallback stringifier. Related to #1024 14 May 2018, 18:38:05 UTC
90988f5 Enable console colour in the approval tests on windows. 14 May 2018, 07:41:18 UTC
e5fe3e8 Ensure platform-independent output from SpecialException::what 12 May 2018, 18:37:13 UTC
6c5c4c4 Add stringification support to std::exception and deriving classes This support is based on overriden `std::exception::what` method, so if an exception does not do so meaningfully, the message is still pointless. This is only used as a fallback, both `StringMaker` specialization and `operator<<` overload have priority.. 12 May 2018, 15:46:25 UTC
c323658 Fix broken YAML in a way that codecov understands Theoretically the previous was not a valid YAML at all, but it is fairly common for parsers to accept it, just in a wrong way. This results in a configuration where only the last value for duplicate keys is taken, instead of a hard error. 10 May 2018, 12:49:40 UTC
db570b7 Split list of examples into "done" and "planned". Closes #1282 09 May 2018, 20:49:04 UTC
0074926 Provide a polyfill over `std::to_string` Android apparently does not support `std::to_string`, so we add a small polyfill over it. Right now only the ULP matcher uses it, but we have had plans to use it in `StringMaker<int>` and friends, as it performs a lot better than `std::stringstream` based stringification on MSVC. See #1280 for more details 09 May 2018, 19:47:42 UTC
6496c51 do not strip spaces from cmake discovered test names this fixes #1265 09 May 2018, 16:00:05 UTC
3dd523b Add gdbinit and lldbinit files with commands to skip stepping into Catch code during debugging The commands provided have to be executed in the current gdb/lldb session or copied into the users ~/.gdbinit ~/.lldbinit files to permanently skip debugging Catch code. Fixes #904 09 May 2018, 15:46:31 UTC
8d5d492 Added GCC 8 to Travis. Updated test so that it warning isn't triggered. 06 May 2018, 10:06:39 UTC
d0287e3 Updated Travis for LLVM 6.0 06 May 2018, 09:50:03 UTC
dd99a66 Add documentation for `--use-colour` The documentation added is based on output from `-?` (help), and comments to #590. 06 May 2018, 09:37:00 UTC
ae590fe Only use tmpfile workaround for MSVC and not MinGW and friends Fixes #1270 30 April 2018, 21:19:39 UTC
7f791fa Suggestion for adding libcluon that is also using Catch2 for testing 30 April 2018, 14:02:41 UTC
0510d47 Fix missing include and wrong comment format While the comment format was valid C++, it breaks our tooling badly. I opened up a github issue for our tooling, because unexpected formatting of a block comment should not silently generate invalid single header file, see #1269. 30 April 2018, 13:15:59 UTC
e92b9c0 Add an experimental new way of capturing stdout/stderr Unlike the relatively non-invasive old way of capturing stdout/stderr, this new way is also able to capture output from C's stdlib functions such as `printf`. This is done by redirecting stdout and stderr file descriptors to a file, and then reading this file back. This approach has two sizeable drawbacks: 1) Performance, obviously. Previously an installed capture made the program run faster (as long as it was then discarded), because a call to `std::cout` did not result in text output to the console. This new capture method in fact forces disk IO. While it is likely that any modern OS will keep this file in memory-cache and might never actually issue the IO to the backing storage, it is still a possibility and calls to the file system are not free. 2) Nonportability. While POSIX is usually assumed portable, and this implementation relies only on a very common parts of it, it is no longer standard C++ (or just plain C) and thus might not be available on some obscure platforms. Different C libs might also implement the relevant functions in a less-than-useful ways (e.g. MS's `tmpfile` generates a temp file inside system folder, so it will not work without elevated privileges and thus is useless). These two drawbacks mean that, at least for now, the new capture is opt-in. To opt-in, `CATCH_CONFIG_EXPERIMENTAL_REDIRECT` needs to be defined in the implementation file. Closes #1243 29 April 2018, 20:25:49 UTC
88a6ff0 Cast to unsigned char when using std::isalnum std::isalnum expects an int in the range of unsigned char or -1 (EOF), otherwise it exhibits undefined behavior. Casting from char to unsigned char avoids this. MSVC warns about this when compiling with /analyze. 29 April 2018, 18:28:35 UTC
9e7c281 Minor fixes to python scripts by pycodestyle 27 April 2018, 16:57:18 UTC
64be2ad Remove superfluous include and fix comment 26 April 2018, 19:44:07 UTC
c651f23 Detect MinGW as Windows platform w/o SEH Fixes #1257 22 April 2018, 16:46:54 UTC
43769a1 Changed to c++ style includes 21 April 2018, 13:58:05 UTC
200d3ad Support for parenthesizing types with commas. 20 April 2018, 13:11:09 UTC
aa7b0c9 Fix generating single header using Python3 19 April 2018, 20:03:25 UTC
375f205 Use io.open in approvalTests.py regardless of Python version Both Python 2.7 and 3.x support full-featured io.open, so we can avoid using a polyfill over this. 19 April 2018, 20:02:31 UTC
dc6b83b Support Python3 in approval tests 16 April 2018, 19:19:13 UTC
f00257e Call listeners before calling reporters Catch2's documentation promises that listeners are called _before_ reporters, but because of the previous implementation, they were called _after_ reporters. This commit fixes that. Closes #1234 07 April 2018, 10:25:03 UTC
414dcae Allow only 1 reporter at a time 07 April 2018, 10:05:29 UTC
d2d8455 v2.2.2 06 April 2018, 10:11:22 UTC
ab30621 Fix stringifying static array of unsigned chars The fix leaves an open question: should we keep treating refs to static array of chars as strings, or should we instead use `strnlen` to check if it is null-terminated within the buffer Fixes #1238 06 April 2018, 09:43:12 UTC
1ca8f43 Add PredicateMatcher that takes an arbitrary predicate functions Also adds `Predicate` helper function to create `PredicateMatcher`. Because of limitations in type inference it needs to be explicitly typed, like so `Predicate<std::string>([](std::string const& str) { ... })`. It also takes an optional second argument for description of the predicate. It is possible to infer the argument with sufficient TMP, see https://stackoverflow.com/questions/43560492/how-to-extract-lambdas-return-type-and-variadic-parameters-pack-back-from-gener/43561563#43561563 but I don't think that the magic is worth introducing ATM. Closes #1236 04 April 2018, 09:14:19 UTC
dfb83f2 Add stringification methods for CLR objects 03 April 2018, 17:06:16 UTC
319bddd Small fix to generate pc with include path In CMake module both include and include/catch are added includes lookup path. Examples are built with #include "catch.hpp" not #include "catch/catch.hpp". This should be the same with pkg-config. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org> 02 April 2018, 19:38:17 UTC
9314412 Add an early bailout out of benchmark timer calibration Specific platforms (e.g. TDM-GCC) can have terrible timer resolution, and our checking code will then loop for an inordinate amount of time. This change will make it so that the calibration gives up after 3 seconds and just uses the already measured values. This leaves one open question, how to signal that the resolution is terrible and benchmarking should not happen? Fixes #1237 01 April 2018, 20:50:39 UTC
ea1f326 Fix potential for false negative CI results on coverage collection 01 April 2018, 12:36:55 UTC
3641706 Leak less GCC warnings suppressions out of Catch 01 April 2018, 11:57:05 UTC
3b801c4 Modify XML encoder to hex-encode invalid UTF-8 sequences There are still some holes, e.g. we leave surrogate pairs be even though they are not a part of valid UTF-8, but this might be for the better -- WTF-8 does support surrogate pairs inside text. Closes #1207 27 March 2018, 14:49:14 UTC
e11508b Disable PIP's version check on AppVeyor 22 March 2018, 14:19:09 UTC
886d799 Fix clang-tidy 6 diagnostic about virtual call in destructor 21 March 2018, 16:05:15 UTC
8b78087 Fix bug in WithinAbs::match() and add tests for it 21 March 2018, 12:47:12 UTC
6c99b04 Allow VS 2017 failures VS 2017 has an annoying bug, where the result of `__FILE__` substitution is always lower-cased. This breaks approval tests and I am not quite convinced that we should fully normalized paths to accomodate this bug. We need to remember to undo this in the future though. 21 March 2018, 12:41:20 UTC
back to top