Commit Graph

144 Commits

Author SHA1 Message Date
Martin Hořeňovský
c2daf468bb Standardize matcher headers to use .hpp suffix 2020-03-27 10:22:25 +01:00
Martin Hořeňovský
0e7e6b210a Remove obsolete surrogate TUs
They will be returned later, but better organized and covering
_all_ headers.
2020-03-17 23:34:55 +01:00
Martin Hořeňovský
d1ffaf55a1 Fix warnings in ExtraTests and Examples 2020-02-26 16:07:54 +01:00
Martin Hořeňovský
6e270958a2 Add development build option to CMake and enable it on CI
Development build enables warnings and and `Werror` or equivalent.
2020-02-26 16:07:26 +01:00
Martin Hořeňovský
34e7a5e0cf Bunch of warning fixes 2020-02-21 23:10:22 +01:00
Martin Hořeňovský
c3013a6251 Move matcher implementation to their own subfolder
In the future we can expect many more matchers, so let's give them
a place to live.

Also moved matcher-related internal files to `internal` subfolder.
Ideally we should sort out all of our source code, but that will
have to come later.
2020-02-20 17:42:11 +01:00
Martin Hořeňovský
cf6575576f Start fixing up Matchers: namespaces, composition ops
This commit also forbids composing lvalues of composed matchers, as
per previous deprecation notice. I do not expect this to be contentious
in practice, because there was a bug in that usage for years, and
nobody complained.
2020-02-20 13:03:30 +01:00
Martin Hořeňovský
a1be19aa1b Remove the separately compiled test for Benchmarking Macros
Thanks to the changes to compilation model, the tests for benchmarking
macros have been made part of the normal test run. This means that
the only purpose these separately compiled tests served was to waste
CI time.
2020-02-18 13:48:34 +01:00
Martin Hořeňovský
c745adb81c Temporarily disable the test for DebugBreakMacro
The change to static library means that the new implementation needs
to be somewhat different, and I do not want to fix it right now.
2020-02-18 13:43:37 +01:00
Martin Hořeňovský
06c135706e Move X12-CustomDebugBreakMacro.cpp to the right place
This is a small fixup because cherry-picking the relevant commit
threw it into the wrong place...
2020-02-18 10:20:37 +01:00
Tristan Stenner
6a2c025bfc Add command line option 'never' to --wait-for-keypress (#1866)
Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2020-02-16 16:11:11 +01:00
offa
2441c2faab stdio.h replaced with cstdio. 2020-02-16 16:05:30 +01:00
Martin Hořeňovský
f8794634c2 Fix significant bug with storing composed matchers
Given that in the 2 or so years that matchers are thing nobody complained,
it seems that people do not actually write this sort of code, and the
possibility will be removed in v3. However, to avoid correctness bugs,
we will have to support this weird code in v2.
2020-02-16 16:02:31 +01:00
Martin Hořeňovský
89f18f15ca Add a test for custom debug break macros
See #1846
2020-02-16 15:47:00 +01:00
khyperia
3c7e737a7b Allow configuring of benchmark warmup time 2020-02-16 15:44:23 +01:00
offa
06c32862b3 Some refactorings:
- Overrides added
 - usages of push_back() replaced with emplace_back()
 - Loop variable made const-refernce
 - NULL replaced with nullptr
 - Names used in the declaration and definition unified
 - size() replaced with empty
 - Identical cases merged
2020-02-16 15:25:23 +01:00
melak47
17c4b2d093 Feature: generic matchers (#1843)
This commit extends the Matchers feature with the ability to have type-independent (e.g. templated) matchers. This is done by adding a new base type that Matchers can extend, `MatcherGenericBase`, and overloads of operators `!`, `&&` and `||` that handle matchers extending `MatcherGenericBase` in a special manner.

These new matchers can also take their arguments as values and non-const references.

Closes #1307 
Closes #1553 
Closes #1554 

Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2020-02-16 11:19:10 +01:00
Martin Hořeňovský
db1a0465dc Outline GeneratorException from generators header 2020-02-14 16:15:47 +01:00
Martin Hořeňovský
b2a6523d85 Fix Clang-3.8 compilation of tests
As far as I know, the compilation error is a compiler bug, but I
do not want to just drop the support for something that is trivial
to work around.
2020-02-13 16:57:37 +01:00
Joe Burzinski
82baef62e2 Fix forwarding in SingleValueGenerator and generator creation
Fixes #1809
2020-02-13 16:19:50 +01:00
Joe Burzinski
0fbf4f3e15 Fix wrong namespacing of benchmarking constructor helpers 2020-02-13 16:15:50 +01:00
Martin Hořeňovský
2788897051 Minor cleanup in the benchmarking tests 2020-02-13 15:12:57 +01:00
Martin Hořeňovský
2945b80f61 Add more constexpr to StringRef 2020-02-13 15:01:03 +01:00
Martin Hořeňovský
63b7d6f98e Improve erasure of test numbers in TAP approvals 2020-02-13 14:22:18 +01:00
Martin Hořeňovský
c50ba09cde Split [.foo] into [.][foo] when parsing test specs
b77cec05c0 fixed this problem for tagging tests, so that a test
case tagged with `[.foo]` would be parsed as tagged with `[.][foo]`.
This does the same for the test spec parsing.

Fixes #1798
2020-02-13 13:35:10 +01:00
Martin Hořeňovský
cd7d7a1c67 Remove CATCH_CONFIG_ENABLE_BENCHMARKING compilation toggle
Now that Catch2 is a proper library, we can always build the full
library (comparatively minor slowdown) and the user can avoid
including benchmarking headers to avoid the compilation slowdown.
2020-02-06 11:36:46 +01:00
Martin Hořeňovský
86e19b952d NoAssertions runs only 1 test case instead of all of them 2020-02-04 10:11:55 +01:00
Martin Hořeňovský
bce5b364d3 Unconditionally provide <chrono> StringMakers 2020-02-03 20:53:36 +01:00
Martin Hořeňovský
34bc56340d Normalize TAP approvals to avoid massive diffs for every change 2020-02-03 20:29:36 +01:00
Martin Hořeňovský
c3a5e21648 Move Approx out of the Detail namespace 2020-02-03 15:14:59 +01:00
Martin Hořeňovský
a3ffc20f57 Provide CTest a hint on test costs (and thus ordering)
When running tests in parallel, CTest runs the tests in decreasing
order of cost (time required), to get the largest speed up from
parallelism. However, the initial cost estimates for all tests are
0, and they are only updated after a test run. This works on a dev
machine, where the tests are ran over and over again, because
eventually the estimates become quite precise, but CI always does
a clean build with 0 estimates.

Because we have 2 slow tests, we want them to run first to avoid
losing parallelism. To do this, we provide them with a cost estimate
manually.
2020-02-03 09:07:23 +01:00
Martin Hořeňovský
1327946785 Add all in-repo reporters to approval tests 2020-02-02 15:04:19 +01:00
Martin Hořeňovský
6c3a5ef625 Remove CATCH_CONFIG_DISABLE_MATCHERS
Now that the recommended distribution and usage method is proper
library, users can just avoid including the matcher headers to get
basically the same effect.
2020-01-25 09:07:36 +01:00
Martin Hořeňovský
d63681f707 Remove testing of CATCH_CONFIG_FALLBACK_STRINGIFIER from SelfTest
This removes a potential ODR violation and the configuration option
is tested in its own separate binary anyway.
2020-01-21 15:14:24 +01:00
Martin Hořeňovský
2b696c4388 Piecemeal includes in extra-tests 2020-01-21 15:03:07 +01:00
Martin Hořeňovský
26f78f96aa Start using piecemeal includes in test files 2020-01-21 10:03:54 +01:00
Martin Hořeňovský
9c07e2a416 Add test for tag aliases 2019-12-18 17:30:41 +01:00
Martin Hořeňovský
a4c31ecd16 Small CMakeLists cleanup 2019-12-18 17:30:08 +01:00
Martin Hořeňovský
5fbf04cd59 Redo how the separate compilation tests are handled 2019-12-15 20:33:39 +01:00
Martin Hořeňovský
8b42acc328 Reintegrate extra tests 2019-12-09 10:04:26 +01:00
Martin Hořeňovský
248f922465 Cleanup impl and main from the main header 2019-12-08 11:31:47 +01:00
Martin Hořeňovský
91ee07e08c Moved scripts/ to tools/scripts/ 2019-12-06 11:53:31 +01:00
Martin Hořeňovský
6eb04667ad Move misc/ to tools/misc 2019-12-06 11:40:53 +01:00
Martin Hořeňovský
0fea081ad1 Move tests from projects/ to tests/ 2019-12-05 16:00:20 +01:00