f65db31 | Martin Hořeňovský | 08 August 2018, 11:57:05 UTC | Commit terrible things to fix generators for VS 2015 | 08 August 2018, 11:57:05 UTC |
c72f304 | Martin Hořeňovský | 08 August 2018, 10:41:06 UTC | Remove obsolete member | 08 August 2018, 10:41:06 UTC |
1ea3e7e | Martin Hořeňovský | 08 August 2018, 10:22:31 UTC | Fix VS2017 warning This is a quick fix only, we should probably add overflow checking as well. Alternatively document a narrow contract. | 08 August 2018, 10:22:33 UTC |
f24d58c | Phil Nash | 27 June 2018, 20:40:37 UTC | Added include for assert | 27 June 2018, 20:40:37 UTC |
7dacdb5 | Phil Nash | 27 June 2018, 20:34:51 UTC | Use variadic CAPTURE in generator tests | 27 June 2018, 20:34:51 UTC |
6e92994 | Phil Nash | 27 June 2018, 20:34:35 UTC | CAPTURE is now variadic | 27 June 2018, 20:34:35 UTC |
c0c2175 | Phil Nash | 27 June 2018, 13:40:53 UTC | Split generator tests between impl (introspective) and usage examples. - also added more comments to tests, added the 10x10 test to approvals and removed the couts in favour of CAPTUREs | 27 June 2018, 13:40:53 UTC |
8f3d47e | Phil Nash | 27 June 2018, 13:17:53 UTC | Added generators to aggregate include | 27 June 2018, 13:17:53 UTC |
456ae87 | Phil Nash | 25 June 2018, 19:18:41 UTC | Restored description field in SectionInfo for now - but marked it deprecated | 26 June 2018, 20:45:04 UTC |
618eb15 | Phil Nash | 26 June 2018, 19:52:34 UTC | Moved local Data class to global scope GCC 4.x doesn't seem to like it | 26 June 2018, 19:52:34 UTC |
c13b35a | Phil Nash | 26 June 2018, 19:35:52 UTC | Removed random generator tests from approvals | 26 June 2018, 19:35:52 UTC |
c6b0f2e | Phil Nash | 26 June 2018, 19:26:42 UTC | Rebased approvals without C++17 mode enabled - d'oh! | 26 June 2018, 19:26:42 UTC |
1ec1c22 | Phil Nash | 26 June 2018, 16:30:30 UTC | Seen rng in approval tests | 26 June 2018, 16:30:30 UTC |
f9daca3 | Phil Nash | 26 June 2018, 16:15:04 UTC | Removed generator tests that have a lot of output from Approval tests | 26 June 2018, 16:15:04 UTC |
6d1e70e | Phil Nash | 26 June 2018, 16:01:09 UTC | fixed signed/ unsigned warning | 26 June 2018, 16:01:09 UTC |
2d38356 | Phil Nash | 26 June 2018, 15:58:20 UTC | Removed catch_suppress_warnings include | 26 June 2018, 15:58:20 UTC |
8abe225 | Phil Nash | 26 June 2018, 15:52:49 UTC | Added missing #include | 26 June 2018, 15:52:49 UTC |
5343f15 | Phil Nash | 26 June 2018, 15:09:37 UTC | Added generator tests to approvals | 26 June 2018, 15:09:37 UTC |
080bb82 | Phil Nash | 26 June 2018, 15:08:11 UTC | Fixed signed/ unsigned mismatch | 26 June 2018, 15:08:11 UTC |
c6319e4 | Phil Nash | 26 June 2018, 13:53:19 UTC | Added comments and some more tweaks | 26 June 2018, 13:53:19 UTC |
35a5c61 | Phil Nash | 26 June 2018, 13:34:04 UTC | Small clean-ups | 26 June 2018, 13:34:04 UTC |
19b16c6 | Phil Nash | 26 June 2018, 12:49:38 UTC | Some header cleanup | 26 June 2018, 12:49:38 UTC |
31d33bd | Phil Nash | 26 June 2018, 12:47:14 UTC | Moved GeneratorTracker impl local to RunContext - now only exposes an interface and the top level generator code acquires the interface from the RunContext | 26 June 2018, 12:47:14 UTC |
564cfb8 | Phil Nash | 26 June 2018, 11:42:33 UTC | Removed GeneratorCache in favour of a GeneratorTracker that holds the generator along with the index | 26 June 2018, 11:42:33 UTC |
0e40091 | Phil Nash | 26 June 2018, 09:31:08 UTC | Removed composite code from Generator<T> ... as it's now in Generators<T>. Might merge the two back together shortly. | 26 June 2018, 09:31:08 UTC |
6366f4d | Phil Nash | 26 June 2018, 08:51:34 UTC | First cut of version that uses , for sequencing instead of << GENERATE macro now forwards to a variadic template helper, makeGenerator() which builds a Generators object. This makes a lot of the existing code redundant - will be removed in the next pass. | 26 June 2018, 08:51:34 UTC |
2bc5603 | Phil Nash | 25 June 2018, 19:07:45 UTC | Added missing files | 25 June 2018, 19:07:45 UTC |
ff3b816 | Phil Nash | 25 June 2018, 19:07:26 UTC | Merge branch 'master' into Generators | 25 June 2018, 19:07:26 UTC |
663ccae | Phil Nash | 25 June 2018, 18:35:07 UTC | Iterated Generators a bit, now works with C++ 17, added table generator | 25 June 2018, 18:35:07 UTC |
0f49a60 | Phil Nash | 25 June 2018, 18:22:57 UTC | Added DYNAMIC_SECTION to CATCH_CONFIG_DISABLE builds | 25 June 2018, 18:22:57 UTC |
5c0efa1 | Phil Nash | 25 June 2018, 18:19:21 UTC | Added DYNAMIC_SECTION and implemented GIVEN/ WHEN/ THEN in terms of it | 25 June 2018, 18:19:21 UTC |
1579744 | Phil Nash | 25 June 2018, 18:04:29 UTC | Deprecated description in SECTION (still accepts it, for now, but doesn't use it anywhere) | 25 June 2018, 18:04:29 UTC |
9b0e740 | Phil Nash | 25 June 2018, 17:38:08 UTC | Changed approval tests path to match changes in CMakeLists.txt | 25 June 2018, 17:38:08 UTC |
1af60ef | Martin Hořeňovský | 24 June 2018, 08:11:14 UTC | 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 | Martin Hořeňovský | 23 June 2018, 17:03:39 UTC | Stop conan package from installing Catch's helpers | 24 June 2018, 10:32:22 UTC |
ed582bd | Martin Hořeňovský | 23 June 2018, 17:04:22 UTC | Include contrib in installation | 24 June 2018, 10:32:22 UTC |
6c1145d | Martin Hořeňovský | 23 June 2018, 13:03:42 UTC | Improve pkg-config integration a bit | 24 June 2018, 10:32:22 UTC |
b957eb4 | Paul le Roux | 19 June 2018, 05:14:46 UTC | Improve conan integration by using cmake install | 24 June 2018, 10:32:22 UTC |
0eb99fb | Paul le Roux | 19 June 2018, 05:14:09 UTC | Add option to not install documentation | 24 June 2018, 10:32:22 UTC |
bf22158 | Martin Hořeňovský | 21 June 2018, 21:34:17 UTC | Update CMake and build documentation | 24 June 2018, 10:32:22 UTC |
44722f9 | Martin Hořeňovský | 11 June 2018, 08:48:10 UTC | 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 |
317f607 | Phil Nash | 15 June 2018, 22:00:50 UTC | Some generators clean-up | 15 June 2018, 22:00:50 UTC |
32a10e0 | Phil Nash | 15 June 2018, 21:52:35 UTC | First cut of Generators working! | 15 June 2018, 21:52:35 UTC |
3347a52 | Phil Nash | 15 June 2018, 20:39:52 UTC | Moved ReusableStringStream impl to generic singleton | 15 June 2018, 20:39:52 UTC |
b278014 | Phil Nash | 15 June 2018, 20:34:38 UTC | Moved registry hub to generic singleton | 15 June 2018, 20:34:38 UTC |
a3aaf28 | Phil Nash | 15 June 2018, 20:25:04 UTC | Added generic singletons facility <sigh> yes, I know - but we have them - may as well make them consistent and safer | 15 June 2018, 20:25:04 UTC |
cbe6ff8 | Phil Nash | 15 June 2018, 19:49:01 UTC | Started adding accessor for generator cache | 15 June 2018, 19:49:01 UTC |
3c85603 | Phil Nash | 15 June 2018, 15:18:42 UTC | Moved generators into their own file | 15 June 2018, 15:18:42 UTC |
307504b | Phil Nash | 15 June 2018, 14:18:52 UTC | Added random ranges | 15 June 2018, 14:18:52 UTC |
a19e9bf | Phil Nash | 12 June 2018, 22:15:25 UTC | Some progress. Have a type-erased cache for generators | 15 June 2018, 13:43:02 UTC |
b85a25d | Phil Nash | 12 June 2018, 16:50:39 UTC | First commit of generators WIP | 15 June 2018, 13:43:02 UTC |
35a57b0 | Phil Nash | 15 June 2018, 13:35:47 UTC | Replaced use of std::rand with std::mt19937 This uses a global instance of the RNG | 15 June 2018, 13:35:47 UTC |
1dce91d | Phil Nash | 12 June 2018, 14:37:06 UTC | 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 | Phil Nash | 12 June 2018, 13:09:30 UTC | Moved inline functions in cpp files into anon namespaces | 12 June 2018, 13:09:30 UTC |
5046077 | Phil Nash | 12 June 2018, 12:43:28 UTC | Updated XCode build settings | 12 June 2018, 12:43:28 UTC |
788f812 | Phil Nash | 12 June 2018, 12:42:33 UTC | Fixed errors and warnings on OC project | 12 June 2018, 12:42:33 UTC |
c5301bf | Martin Hořeňovský | 11 June 2018, 20:44:14 UTC | Updated release process documentation to reflect vcpkg autoupdate | 11 June 2018, 20:44:14 UTC |
d2a130f | Martin Hořeňovský | 06 June 2018, 21:16:06 UTC | v2.2.3 | 06 June 2018, 21:19:06 UTC |
7be8a41 | Julien Nitard | 31 May 2018, 02:32:59 UTC | 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 | Lyashenko Arsenii Maksimovich | 01 May 2018, 11:52:24 UTC | Finish fixing invalid compilation using MinGW | 04 June 2018, 21:49:40 UTC |
3a47b8b | Martin Hořeňovský | 04 June 2018, 14:53:21 UTC | 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 | Martin Hořeňovský | 04 June 2018, 18:28:33 UTC | Normalize OS X specific pass/fail strings in approvals | 04 June 2018, 21:19:55 UTC |
7abd7db | Cristian Morales Vega | 31 May 2018, 22:21:14 UTC | Fix minor typo in the documentation | 01 June 2018, 20:24:49 UTC |
88d7b8d | BiCapitalization | 27 May 2018, 16:12:40 UTC | 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 | Martin Hořeňovský | 14 May 2018, 19:03:07 UTC | Make FALLBACK_STRINGIFIER documentation more explicit Related to #1024 | 14 May 2018, 19:03:07 UTC |
4c7b7d0 | Martin Hořeňovský | 14 May 2018, 17:46:30 UTC | 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 | Rupert Steel | 02 May 2018, 05:25:30 UTC | Enable console colour in the approval tests on windows. | 14 May 2018, 07:41:18 UTC |
e5fe3e8 | Martin Hořeňovský | 12 May 2018, 18:37:13 UTC | Ensure platform-independent output from SpecialException::what | 12 May 2018, 18:37:13 UTC |
6c5c4c4 | Martin Hořeňovský | 12 May 2018, 15:46:25 UTC | 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 | Martin Hořeňovský | 10 May 2018, 12:49:40 UTC | 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 | Martin Hořeňovský | 09 May 2018, 20:49:04 UTC | Split list of examples into "done" and "planned". Closes #1282 | 09 May 2018, 20:49:04 UTC |
0074926 | Martin Hořeňovský | 09 May 2018, 18:16:27 UTC | 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 | Markus Reitboeck | 07 May 2018, 20:52:37 UTC | do not strip spaces from cmake discovered test names this fixes #1265 | 09 May 2018, 16:00:05 UTC |
3dd523b | Markus Reitboeck | 08 May 2018, 19:12:55 UTC | 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 | Christopher Di Bella | 05 May 2018, 08:39:55 UTC | Added GCC 8 to Travis. Updated test so that it warning isn't triggered. | 06 May 2018, 10:06:39 UTC |
d0287e3 | Christopher Di Bella | 05 May 2018, 09:07:36 UTC | Updated Travis for LLVM 6.0 | 06 May 2018, 09:50:03 UTC |
dd99a66 | Palotás Boldizsár | 25 April 2018, 08:59:38 UTC | 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 | Martin Hořeňovský | 30 April 2018, 21:06:26 UTC | Only use tmpfile workaround for MSVC and not MinGW and friends Fixes #1270 | 30 April 2018, 21:19:39 UTC |
7f791fa | Christian Berger | 30 April 2018, 09:59:10 UTC | Suggestion for adding libcluon that is also using Catch2 for testing | 30 April 2018, 14:02:41 UTC |
0510d47 | Martin Hořeňovský | 30 April 2018, 13:15:59 UTC | 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 | Martin Hořeňovský | 29 April 2018, 20:14:41 UTC | 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 | Ian Hattendorf | 29 April 2018, 06:23:30 UTC | 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 | Marcus Näslund | 19 April 2018, 13:02:15 UTC | Minor fixes to python scripts by pycodestyle | 27 April 2018, 16:57:18 UTC |
64be2ad | Martin Hořeňovský | 24 April 2018, 15:05:53 UTC | Remove superfluous include and fix comment | 26 April 2018, 19:44:07 UTC |
c651f23 | Martin Hořeňovský | 22 April 2018, 16:46:54 UTC | Detect MinGW as Windows platform w/o SEH Fixes #1257 | 22 April 2018, 16:46:54 UTC |
43769a1 | Marcus Näslund | 18 April 2018, 12:59:10 UTC | Changed to c++ style includes | 21 April 2018, 13:58:05 UTC |
200d3ad | Barry | 10 April 2018, 02:41:44 UTC | Support for parenthesizing types with commas. | 20 April 2018, 13:11:09 UTC |
aa7b0c9 | Martin Hořeňovský | 19 April 2018, 20:03:25 UTC | Fix generating single header using Python3 | 19 April 2018, 20:03:25 UTC |
375f205 | Martin Hořeňovský | 19 April 2018, 20:02:31 UTC | 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 | Tom Hughes | 06 April 2018, 12:59:08 UTC | Support Python3 in approval tests | 16 April 2018, 19:19:13 UTC |
f00257e | Martin Hořeňovský | 07 April 2018, 09:42:24 UTC | 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 | Martin Hořeňovský | 07 April 2018, 10:05:29 UTC | Allow only 1 reporter at a time | 07 April 2018, 10:05:29 UTC |
d2d8455 | Martin Hořeňovský | 06 April 2018, 10:11:22 UTC | v2.2.2 | 06 April 2018, 10:11:22 UTC |
ab30621 | Martin Hořeňovský | 06 April 2018, 09:39:40 UTC | 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 | Martin Hořeňovský | 03 April 2018, 21:28:14 UTC | 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 | David Aue | 08 March 2018, 21:40:18 UTC | Add stringification methods for CLR objects | 03 April 2018, 17:06:16 UTC |
319bddd | Alexis Jeandet | 01 April 2018, 17:14:59 UTC | 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 | Martin Hořeňovský | 01 April 2018, 20:50:39 UTC | 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 | Martin Hořeňovský | 01 April 2018, 12:36:55 UTC | Fix potential for false negative CI results on coverage collection | 01 April 2018, 12:36:55 UTC |
3641706 | Mike | 09 November 2017, 22:50:49 UTC | Leak less GCC warnings suppressions out of Catch | 01 April 2018, 11:57:05 UTC |