aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-12 20:48:11 +0000
committertv <tv@krebsco.de>2026-11-13 03:24:36 +0100
commit8c78f328bf7a1a4b97f26e5f5bb25f2d8b462f24 (patch)
tree3f7dfb0c2fecdb09efd87bc1293d25d0bc4b8579 /README.md
parentbde412b675588ec14bf069f7e244b6e34eb5fdff (diff)
tests: check output, test rsync versions, close gaps in what's asserted
Several checks would pass with the feature they cover broken, or cover it only by chance: - Phases can state what a succeeding populate prints. That covers the warnings of insecureLinks, the lines pruning prints, the one about a replaced symlink, and what rsync logs about each item. - The insecureLinks scenarios take their expectations from the version of rsync, so with an rsync older than 3.5.0 they pass without the check ever running. New tests, rsync-3-4-1 and rsync-3-5-0, run them with these versions, which tests/rsync.nix builds from their release tarballs, with ACLs and extended attributes, which backups use. - Pruning has a leftover upload to remove, and a source that stops having inputs to root leaves no empty directory of roots. - A full clone has every commit from the start, so the fetch for a commit it lacks never runs. A git scenario deploys a commit that appears on the server after cloning. - The jq test also runs the Nix function that finds a flake's subdirectory on the target, over both shapes of nix flake metadata's output.
Diffstat (limited to 'README.md')
-rw-r--r--README.md11
1 files changed, 7 insertions, 4 deletions
diff --git a/README.md b/README.md
index f7d5cbe..d8f0346 100644
--- a/README.md
+++ b/README.md
@@ -701,14 +701,17 @@ outside the target directory changed. The tests deploy every combination
of a source type's options, except for patches, which the features test
covers, to the deploying machine itself, to a remote target
as `root`, and to a remote target using `sudo`, and check the result after
-deploying and after deploying again.
+deploying and after deploying again. The scenarios whose results depend on
+the version of rsync also run with rsync 3.4.1 and 3.5.0, which
+`tests/rsync.nix` builds, whatever version nixpkgs has.
The tests require KVM and nixpkgs with `pkgs.testers.runNixOSTest`
(23.05 or later), and use `<nixpkgs>` by default.
```sh
-nix-build tests # all tests
-nix-build tests -A flake # the test for one source type
-nix-build tests -A jq # populate's jq programs for flakes, without VMs
+nix-build tests # all tests
+nix-build tests -A flake # the test for one source type
+nix-build tests -A rsync-3-5-0 # the scenarios depending on rsync's version
+nix-build tests -A jq # populate's programs for flakes, without VMs
```