aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorAleksa Sarai <[email protected]>2022-03-02 05:05:32 +1100
committerGitHub <[email protected]>2022-03-01 10:05:32 -0800
commit669683c4cbcd9c20258ce6641c6c777f29aeb94d (patch)
tree909474b14dbdfe47a345f9b2ad8bb02a3189b369 /.github
parent19229e5f1ee3b7ff4709e63f64c559518f2fd82e (diff)
ZTS: switch to rsync for directory diffs
While "diff -r" is the most straightforward way of comparing directory trees for differences, it has two major issues: * File metadata is not compared, which means that subtle bugs may be missed even if a test is written that exercises the buggy behaviour. * diff(1) doesn't know how to compare special files -- it assumes they are always different, which means that a test using diff(1) on special files will always fail (resulting in such tests not being added). rsync can be used in a very similar manner to diff (with the -ni flags), but has the additional benefit of being able to detect and resolve many more differences between directory trees. In addition, rsync has a standard set of features and flags while diffs feature set depends on whether you're using GNU or BSD binutils. Note that for several of the test cases we expect that file timestamps will not match. For example, the ctime for a file creation or modify event is stored in the intent log but not the mtime. Thus when replaying the log the correct ctime is set but the current mtime is used. This is the expected behavior, so to prevent these tests from failing, there's a replay_directory_diff function which ignores those kinds of changes. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Aleksa Sarai <[email protected]> Closes #12588
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build-dependencies.txt1
1 files changed, 1 insertions, 0 deletions
diff --git a/.github/workflows/build-dependencies.txt b/.github/workflows/build-dependencies.txt
index 1dc745d5f..e59139900 100644
--- a/.github/workflows/build-dependencies.txt
+++ b/.github/workflows/build-dependencies.txt
@@ -38,6 +38,7 @@ python3-dev
python3-packaging
python3-setuptools
rng-tools
+rsync
samba
sysstat
uuid-dev