Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMartin Hořeňovský2023-02-22 20:11:00 +0100
committerMartin Hořeňovský2023-02-22 20:11:45 +0100
commita209bcfb54f493dc199baf315bd468491a0ceccd (patch)
tree616f626e9f3083b7efa6ca8dd14c3267357f0127
parent584973a485160bea0feb8764c28bb65d03b988ac (diff)
downloadcatch3-a209bcfb54f493dc199baf315bd468491a0ceccd.tar.gz
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
-rw-r--r--docs/contributing.md23
-rw-r--r--tools/scripts/buildAndTest.cmd2
-rwxr-xr-xtools/scripts/buildAndTest.sh2
3 files changed, 19 insertions, 8 deletions
diff --git a/docs/contributing.md b/docs/contributing.md
index a4c9220b..d9f87fc1 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -55,6 +55,15 @@ tests from `SelfTest` through a specific reporter and then compare the
generated output with a known good output ("Baseline"). By default, new
tests should be placed here.
+To configure a Catch2 build with just the basic tests, use the `basic-tests`
+preset, like so:
+
+```
+# Assuming you are in Catch2's root folder
+
+cmake -B basic-test-build -S . -DCMAKE_BUILD_TYPE=Debug --preset basic-tests
+```
+
However, not all tests can be written as plain unit tests. For example,
checking that Catch2 orders tests randomly when asked to, and that this
random ordering is subset-invariant, is better done as an integration
@@ -76,21 +85,23 @@ configuration and require separate compilation.
Finally, CMake config tests test that you set Catch2's compile-time
configuration options through CMake, using CMake options of the same name.
-None of these tests are enabled by default. To enable them, add
+These test categories can be enabled one by one, by passing
`-DCATCH_BUILD_EXAMPLES=ON`, `-DCATCH_BUILD_EXTRA_TESTS=ON`, and
-`-DCATCH_ENABLE_CONFIGURE_TESTS=ON` when configuration the CMake build.
+`-DCATCH_ENABLE_CONFIGURE_TESTS=ON` when configuring the build.
+
+Catch2 also provides a preset that promises to enable _all_ test types,
+`all-tests`.
-Bringing this all together, the steps below should configure, build,
-and run all tests in the `Debug` compilation.
+The snippet below will build & run all tests, in `Debug` compilation mode.
<!-- snippet: catch2-build-and-test -->
<a id='snippet-catch2-build-and-test'></a>
```sh
-# 1. Regenerate the amalgamated distribution
+# 1. Regenerate the amalgamated distribution (some tests are built against it)
./tools/scripts/generateAmalgamatedFiles.py
# 2. Configure the full test build
-cmake -Bdebug-build -H. -DCMAKE_BUILD_TYPE=Debug -DCATCH_DEVELOPMENT_BUILD=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_BUILD_EXTRA_TESTS=ON
+cmake -B debug-build -S . -DCMAKE_BUILD_TYPE=Debug --preset all-tests
# 3. Run the actual build
cmake --build debug-build
diff --git a/tools/scripts/buildAndTest.cmd b/tools/scripts/buildAndTest.cmd
index e5222a01..7c10e564 100644
--- a/tools/scripts/buildAndTest.cmd
+++ b/tools/scripts/buildAndTest.cmd
@@ -6,7 +6,7 @@ rem 1. Regenerate the amalgamated distribution
python tools\scripts\generateAmalgamatedFiles.py
rem 2. Configure the full test build
-cmake -Bdebug-build -H. -DCMAKE_BUILD_TYPE=Debug -DCATCH_DEVELOPMENT_BUILD=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_ENABLE_CONFIGURE_TESTS=ON
+cmake -B debug-build -S . -DCMAKE_BUILD_TYPE=Debug --preset all-tests
rem 3. Run the actual build
cmake --build debug-build
diff --git a/tools/scripts/buildAndTest.sh b/tools/scripts/buildAndTest.sh
index 4a741598..01a82837 100755
--- a/tools/scripts/buildAndTest.sh
+++ b/tools/scripts/buildAndTest.sh
@@ -8,7 +8,7 @@
./tools/scripts/generateAmalgamatedFiles.py
# 2. Configure the full test build
-cmake -Bdebug-build -H. -DCMAKE_BUILD_TYPE=Debug -DCATCH_DEVELOPMENT_BUILD=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_ENABLE_CONFIGURE_TESTS=ON
+cmake -B debug-build -S . -DCMAKE_BUILD_TYPE=Debug --preset all-tests
# 3. Run the actual build
cmake --build debug-build