Commit Graph

756 Commits

Author SHA1 Message Date
Vertexwahn
46539b6d9b Fix spelling 2023-04-29 12:55:51 +02:00
Holger Kaelberer
aad926baf8 Catch.cmake: Add new DISCOVERY_MODE option to catch_discover_tests
Introducing a new DISCOVERY_MODE mode option, which provides greater
control over when catch_discover_tests perforsm test discovery.

It has two supported modes:
* POST_BUILD: The default behavior, which adds a POST_BUILD command
  to perform test discovery after the test has been built as was
  always done so far.

* PRE_TEST: New mode, which delays test discovery until test execution.
  The generated include file generates the appropriate CTest files at
  runtime and regenerates the CTest files when the executable is
  updated.
  This mode can be used in build-environments that don't allow for
  executing the linked binaries at build-time (like in a
  cross-compilation environment).

DISCOVERY_MODE can be controlled in two ways:
1. Setting the DISCOVERY_MODE when calling catch_discover_tests.

2. Setting the global CMAKE_CATCH_DISCOVER_TESTS_DISCOVERY_MODE prior
   to calling gtest_discover_tests.

Closes #2493
2023-04-19 23:51:42 +02:00
Vadim Zeitlin
8a1b3b81cb Add wxWidgets as another Open Source project using Catch
wxWidgets uses Catch (v2 currently) for all of its tests, even though
some of them still use CppUnit-like macros for compatibility.
2023-03-11 21:29:51 +01:00
Vadim Zeitlin
e5aabb6714 Add xmlwrapp to the list of Open Source projects using Catch
This library uses Catch (v2 currently) for its unit tests.
2023-03-11 21:29:51 +01:00
Martin Hořeňovský
3f0283de7a
v3.3.2 2023-02-27 15:12:49 +01:00
Martin Hořeňovský
6fbb3f0723
Add IsNaN matcher 2023-02-26 00:14:32 +01:00
Martin Hořeňovský
27ba26f743
Merge pull request #2643 from kisielk/patch-1
cmake-integration.md: Use "tests" as test target name in all examples.
2023-02-22 20:59:12 +01:00
Martin Hořeňovský
a209bcfb54
Update build instructions in contributing.md
We now show the more modern `-S {source}` instead of the old and
undocumented `-H{source}` CMake flag, and also show the available
presets, instead of individually specifying the different testing
options.

Closes #2593
2023-02-22 20:11:45 +01:00
Martin Hořeňovský
bf6a15a69a
Rewrite -# docs 2023-02-17 15:55:21 +01:00
Kamil Kisiel
4ff9be3bc5
cmake-integration.md: Use "tests" as test target name in all examples. 2023-02-10 11:09:26 -08:00
Martin Hořeňovský
618d44c448
Update docs about thread safe assertions 2023-02-01 15:24:47 +01:00
Martin Hořeňovský
2ab20a0e00
v3.3.1 2023-01-29 23:18:57 +01:00
Martin Hořeňovský
c837cb4a8a
v3.3.0 2023-01-22 19:53:12 +01:00
Martin Hořeňovský
adf43494e1
Add missing version information to matchers.md 2023-01-22 00:35:32 +01:00
John Beard
efca9a0f18
Added ElementsAre and UnorderedElementsAre (#2377)
Co-authored-by: Garz4 <fancygarz4@gmail.com>
Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2023-01-22 00:33:04 +01:00
Arash Badie-Modiri
956f915e31 Document template macros are in spearate header
Type parametrised and signature parametrised test macros are now in their own header. The documentation should reflect that.
2023-01-18 23:16:55 +01:00
Martin Hořeňovský
3486f8ed9e
Update generator docs 2023-01-18 11:55:53 +01:00
Martin Hořeňovský
d59572f46f
Reword the SKIP docs a bit 2023-01-12 20:39:03 +01:00
Martin Hořeňovský
16f48f8c7c
Add SUCCEED and FAIL docs next to SKIP docs 2023-01-12 20:38:58 +01:00
Martin Hořeňovský
367c2cb248
Update doc about what counts as unique test case 2023-01-12 15:26:32 +01:00
Philip Salzmann
d548be26e3
Add new SKIP macro for skipping tests at runtime (#2360)
* Add new SKIP macro for skipping tests at runtime

This adds a new `SKIP` macro for dynamically skipping tests at runtime.
The "skipped" status of a test case is treated as a first-class citizen,
like "succeeded" or "failed", and is reported with a new color on the
console.

* Don't show "skipped assertions" in console/compact reporters

Also extend skip tests to cover a few more use cases.

* Return exit code 4 if all test cases are skipped

* Use LightGrey for the skip colour

This isn't great, but is better than the deep blue that was borderline
invisible on dark backgrounds. The fix is to redo the colouring
a bit, including introducing light-blue that is actually visible.

* Add support for explicit skips in all reporters

* --allow-running-no-tests also allows all tests to be skipped

* Add docs for SKIP macro, deprecate IEventListener::skipTest

Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2023-01-12 15:01:47 +01:00
TrueWodzu
cdf604f30e Update command-line.md
Typo in "--list-reporter" link, should be "--list-reporters"
2023-01-08 19:37:16 +01:00
lbckmnn
9c0533a905
Add MessageMatches matcher for exception (#2570) 2022-12-12 00:40:47 +01:00
Sergio Arroutbi
8b84438be4 Avoid usage of master when possible
Signed-off-by: Sergio Arroutbi <sarroutb@redhat.com>
2022-12-09 23:22:10 +01:00
Martin Hořeňovský
ab6c7375be
v3.2.1 2022-12-09 23:10:18 +01:00
Martin Hořeňovský
65cc7fd2ae
v3.2.0 2022-11-16 20:05:48 +01:00
Martin Hořeňovský
c276b530ee
Fix typo in docs/release-notes.md 2022-11-16 16:06:29 +01:00
Martin Hořeňovský
8beb74da8a
Add repeatability guarantees to faq.md 2022-11-16 11:21:00 +01:00
Martin Hořeňovský
6aa56c70e2
Mention BUILD.bazel in contributing docs for CATCH_CONFIG* 2022-11-12 22:08:23 +01:00
Martin Hořeňovský
066cc51ce6
Document adding new CATCH_CONFIG options to contributing.md 2022-11-09 16:33:47 +01:00
Masashi Fujita
b7f4a2efb8
Add support for PlayStation platforms (#2562)
* Add new `CATCH_CONFIG` option for using `std::getenv`, because PS does not support env vars
* Add PS to platforms that have disabled posix signals.
* Small workaround for PS toolchain bug that prevents it from compiling `std::set` with lambda based comparator.
2022-11-09 14:47:55 +01:00
Roger Standridge
b56c474260 Update comparing-floating-point-numbers.md 2022-10-29 12:42:45 +02:00
Lars Toenning
f1084fb309
Fix references to license file
The license file was renamed with 6a502cc2f5
2022-10-28 11:30:15 +02:00
Martin Hořeňovský
2d0dcc36e8
Add Bazel support to the documentation 2022-10-21 10:53:55 +02:00
Martin Hořeňovský
5df88da16e
3.1.1 2022-10-17 19:57:58 +02:00
Martin Hořeňovský
5cd8938905
Update explanation of REQUIRE_FALSE in docs/assertions.md 2022-10-17 15:13:00 +02:00
Martin Hořeňovský
6a422bae0b
Trim superfluous whitespace in docs 2022-10-17 15:02:45 +02:00
Martin Hořeňovský
a07ac3f935
Rewrite explanation of problems with && and || in assertions 2022-10-17 12:36:02 +02:00
Martin Hořeňovský
d8619f076b
Fixup shard index docs
Closes #2547
2022-10-16 17:00:29 +02:00
Martin Hořeňovský
95cd95e591
Add extra explanations to some items in docs/readme.md
This should make it easier for people to find what they need, e.g.
finding generators by looking for "value parameterized tests".
2022-10-15 23:50:20 +02:00
Martin Hořeňovský
eb7397544c
Bold section 'headings' in docs/readme.md 2022-10-15 23:50:18 +02:00
Sam Cunliffe
d1394a7064 Link to SECTIONS doc at top of test fixtures page.
I came here looking for a way to use a fixture. But what I really wanted was better done in the SECTION macro. Feels like a link right at the top would've made it clearer faster.
2022-10-15 16:59:52 +02:00
Martin Hořeňovský
0c962d11b3
Centralize and update docs for floating point comparisons
The new docs mention that Approx is deprecated and should not be
used, and explain the reasons behind it.

Closes #1444
2022-10-15 11:02:58 +02:00
tocic
dea1a6abd9
Fix typos in docs (#2514) 2022-09-09 16:00:39 +02:00
Martin Hořeňovský
4adf010549
Mention dynamic library stuff in the FAQ
Closes #2497
2022-09-03 22:31:29 +02:00
Martin Hořeňovský
686468d185
Explain TU as translation unit where appropriate 2022-09-03 22:22:10 +02:00
Martin Hořeňovský
33e70194d3
Link to the randomized-shard-registration script from usage tips 2022-08-18 00:14:07 +02:00
Martin Hořeňovský
9bb206fc61
Remove obsoleted sections of ci-and-misc.md 2022-08-18 00:05:55 +02:00
Martin Hořeňovský
ab04e599e7
Improve v2->v3 migration docs 2022-08-18 00:02:33 +02:00
Martin Hořeňovský
97c48e0c34
v3.1.0 2022-07-17 20:18:44 +02:00
Raphael Schaller
1bd233866c Add AllTrue, AnyTrue, NoneTrue matchers 2022-07-16 16:16:05 +02:00
Martin Hořeňovský
a6d59b62b2
Remove obsolete link to benchmarking tests
The benchmarking feature is now documented, so there is no need
to direct our users towards our test file to understand how it
works.

Closes #2471
2022-07-15 19:49:24 +02:00
Martin Hořeňovský
34d9724058
Add experimental CMake script for sharding tests in binaries 2022-06-24 14:12:55 +02:00
Martin Hořeňovský
5d269045b2
Add section on running tests in parallel to the FAQ 2022-06-24 11:20:31 +02:00
Martin Hořeňovský
95a1206805
Add doc page with best practices and other usage tips 2022-06-24 11:20:22 +02:00
Martin Hořeňovský
6f9f1465c3
Shorten lines in sharding docs 2022-06-22 00:12:16 +02:00
Frank Dana
a369267874
test-fixtures.md: Line-wrap code examples (#2464)
* test-fixtures.md: Line-wrap code examples

* relinebreak

Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2022-06-19 16:24:59 +02:00
Nexus Web Development
1f381a1f62
Update commercial-users.md (#2465)
Using Catch2 and now Catch3 for our client's as well as our own projects and loving it. Especially the easy C++ BDD setup and implementation.
2022-06-18 23:47:49 +02:00
Brandon Jones
7e4ec432d0 Change Bazel XML support to depend upon BAZEL_TEST 2022-06-17 16:36:14 +02:00
Martin Hořeňovský
372b7575f6
Remove deprecation notice for console colour CLI
The required changes were one of the last commits before the full
v3 release.
2022-06-13 23:52:31 +02:00
Elizabeth Sherrock
0a810c5e59
Added Cytopia to opensource-users.md 2022-06-07 09:06:10 -04:00
Martin Hořeňovský
8822e28772
Update CE link in BDD documentation for 3.0.1
The old compiler was no longer built-for, so it couldn't link
against new versions, and also didn't properly provide the
user-config header.

Closes #2396
2022-06-06 00:29:02 +02:00
Petr Kubánek
0c13d021da Update documentation - add pkg-config examples.
Use -std=c++14 (instead of c++11). Pointers how to integrate with
pkg-config for non-CMake projects.
2022-06-05 15:58:41 +02:00
balus
3644b4135d Doc: correct the address of the link to the command-line doc in tutorial.md 2022-06-04 10:20:01 +02:00
Sergio Losilla
231c58a048
Add table with verbosity levels (missing --list-listeners) (#2443)
Co-authored-by: Sergio Losilla <sergio.losilla@nt-bnct.com>
Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2022-06-02 21:50:51 +02:00
Martin Hořeňovský
8c952bd076
Point to 3.0.1 in FetchContent example
Closes #2326
Closes #2438
2022-05-31 11:49:24 +02:00
Martin Hořeňovský
3a18a688a0
Mention CMake's integration with CATCH_CONFIG options 2022-05-21 13:04:09 +02:00
Martin Hořeňovský
605a34765a
v3.0.1 2022-05-17 22:13:36 +02:00
Martin Hořeňovský
5a49285e9c
Add --list-listeners option 2022-05-10 20:57:59 +02:00
Martin Hořeňovský
9dc229693d
Document the stability guarantees of '--order rand' option 2022-04-25 21:45:50 +02:00
Martin Hořeňovský
db57a4956f
Fixup ToC in command-line.md 2022-04-25 21:39:48 +02:00
Martin Hořeňovský
48177831ee
Add version placeholder to the example doc in contributing.md 2022-04-25 21:36:03 +02:00
Martin Hořeňovský
ee3bbecf51
Improve include guard docs in contributing.md 2022-04-25 21:33:05 +02:00
Martin Hořeňovský
431dcf36ea
Document Catch2's API/ABI stability policies 2022-04-25 18:58:50 +02:00
Martin Hořeňovský
e882cb8eb1
Document the new --skip-benchmarks flag 2022-04-25 18:36:40 +02:00
Daniel Feist
291b35b389
Added --skip-benchmarks command-line option. (#2408)
Closes #2392

Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2022-04-23 23:14:49 +02:00
Martin Hořeňovský
73d8fb5bca
Update release-notes.md 2022-04-10 21:43:28 +02:00
Martin Hořeňovský
0a33405983
Mention Bazel support in release notes 2022-04-09 20:55:13 +02:00
Lukasz Okraszewski
cb551b4f6d
Add default reporter for Bazel integration (#2399)
When the added Bazel configuration flag is enabled,
a default JUnit reporter will be added if the XML
envrioment variable is defined.
Fix include paths for generated config header.
Enable Bazel config by default when building with
Bazel.


Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
2022-04-08 18:01:59 +02:00
Martin Hořeňovský
46b3f7ee5f
Document magic %-prefixed streams 2022-04-07 12:50:18 +02:00
Martin Hořeňovský
f9f4e58dfb
Add missing version placeholder to --colour-mode cli option docs 2022-04-07 12:50:14 +02:00
Martin Hořeňovský
423e1d2ebb
Integrate the new reporter specs into Catch2
This means that the CLI interface now uses the new key-value oriented
reporter spec, the common reporter base creates the colour implementation
based on the reporter-specific configuration, and it also stores the
custom configuration options for each reporter instance.

Closes #339 as it allows per-reporter forcing of ansi colour codes.
2022-04-07 12:50:08 +02:00
Martin Hořeňovský
1a8a793178
Refactor colour handling to prepare for per-reporter colour modes
This includes always compiling the ANSI and None colour
implementations, as they don't need to touch any platform
specific APIs, and removing their respective compile-time
configuration options.

Because the Win32 colour implementation requires Win32-specific
APIs, it is still hidden behind a compile-time toggle,
`CATCH_CONFIG_COLOUR_WIN32` (renamed from `..._COLOUR_WINDOWS`).

The commandline options for colours were also changed. The
option now uses different name, and allows to select between
different implementations, rather than changing whether
the compiled-in colour implementation is used through
"yes/no/default" options.
2022-03-28 13:10:13 +02:00
wqking
38879296a7 Add eventpp and accessorpp to Catch2 users 2022-03-13 16:56:07 +01:00
Martin Hořeňovský
05d4ec62c8
Add common ReporterBase as parent of the helper bases
This is useful as a centralized place for handling common reporter
problems like handling output streams, and soon also colour impl
handling.
2022-03-06 16:28:22 +01:00
Martin Hořeňovský
529eec97bb
Mention CMake configure options in release notes 2022-02-23 14:16:36 +01:00
Martin Hořeňovský
72f0372664
Add tests for CMake configure toggles passing to Catch2 build 2022-02-20 19:32:30 +01:00
John Beard
0c722564c3 Examples: remove references to catch_default_main
catch_default_main.hpp was removed in db32550898

The example 000-CatchMain.cpp is no longer compiled, but is still
present in the examples and is still references by other example
files. Remove the file and references to it, as they are confusing.
2022-02-20 13:10:42 +01:00
Martin Hořeňovský
7cf2f88e50
Add small missing things to release notes 2022-02-14 18:22:11 +01:00
Martin Hořeňovský
c912f62fc4
Remove Windows.h related defines 2022-02-05 16:21:06 +01:00
Martin Hořeňovský
aa3c7be434
Fix ToC in CLI documentation 2022-02-05 16:14:47 +01:00
Martin Hořeňovský
b0279e0c14
Remove mention of CATCH_CONFIG_MAIN from docs/configuration.md 2022-02-05 14:55:01 +01:00
Martin Hořeňovský
b5dbdc858d
Link to the v2-v3 migration docs from release notes 2022-01-28 23:55:27 +01:00
Simon Weis
5121660e7f Add OpenALpp as an open source library that uses Catch2 2022-01-22 21:33:19 +01:00
Martin Hořeňovský
39d3de17f3
Fix mentions of CATCH_INSTALL_HELPERS
Fixes #2347
2022-01-06 23:37:44 +01:00
Martin Hořeňovský
244680d512
Update release-process.md for v3 2022-01-03 23:30:39 +01:00
Martin Hořeňovský
57c9c935ee
Update release notes 2022-01-03 23:11:55 +01:00
Martin Hořeňovský
d3199c42c2
Redo reporter CLI and reporter-specific docs
Closes #2259
2022-01-03 20:38:13 +01:00
Martin Hořeňovský
eeee4a49af
Remove short flags from --list-tests and --list-tags 2022-01-02 21:23:29 +01:00
Martin Hořeňovský
0d1bdea69f
Remove all mentions of the removed --list-test-names-only flag 2022-01-02 21:23:26 +01:00