aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/contributing
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2023-07-19 11:17:57 -0400
committerGitHub <noreply@github.com>2023-07-19 11:17:57 -0400
commit453c4be93cb10b417a7140d9f8b7185f9785b7a6 (patch)
tree535e9aaac03e43f117e1dd5048232eba2f5213ef /doc/manual/src/contributing
parentb0173716f6b27b4fb307ac9ded544e46e712ad22 (diff)
parent259e328de81a91cf824efb0603f57fcde94ad3ff (diff)
Merge pull request #8680 from NixLayeredStore/test-groups
Introduce notion of a test group, use for CA tests
Diffstat (limited to 'doc/manual/src/contributing')
-rw-r--r--doc/manual/src/contributing/testing.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/doc/manual/src/contributing/testing.md b/doc/manual/src/contributing/testing.md
index a5253997d..c3c82e3c0 100644
--- a/doc/manual/src/contributing/testing.md
+++ b/doc/manual/src/contributing/testing.md
@@ -14,6 +14,8 @@ You can run the whole testsuite with `make check`, or the tests for a specific c
The functional tests reside under the `tests` directory and are listed in `tests/local.mk`.
Each test is a bash script.
+### Running the whole test suite
+
The whole test suite can be run with:
```shell-session
@@ -23,6 +25,33 @@ ran test tests/bar.sh... [PASS]
...
```
+### Grouping tests
+
+Sometimes it is useful to group related tests so they can be easily run together without running the entire test suite.
+Each test group is in a subdirectory of `tests`.
+For example, `tests/ca/local.mk` defines a `ca` test group for content-addressed derivation outputs.
+
+That test group can be run like this:
+
+```shell-session
+$ make ca.test-group -j50
+ran test tests/ca/nix-run.sh... [PASS]
+ran test tests/ca/import-derivation.sh... [PASS]
+...
+```
+
+The test group is defined in Make like this:
+```makefile
+$(test-group-name)-tests := \
+ $(d)/test0.sh \
+ $(d)/test1.sh \
+ ...
+
+install-tests-groups += $(test-group-name)
+```
+
+### Running individual tests
+
Individual tests can be run with `make`:
```shell-session