summaryrefslogtreecommitdiff
path: root/t/perf/p7519-fsmonitor.sh
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhost@microsoft.com>2021-02-03 15:34:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-02-17 01:14:34 (GMT)
commiteb10e637cf04a19b9a3d5d7c904d71bc9e4ea408 (patch)
treea4a881474665b96228cca2229dc7f5bab7b70459 /t/perf/p7519-fsmonitor.sh
parent71ca53e8125e36efbda17293c50027d31681a41f (diff)
downloadgit-eb10e637cf04a19b9a3d5d7c904d71bc9e4ea408.zip
git-eb10e637cf04a19b9a3d5d7c904d71bc9e4ea408.tar.gz
git-eb10e637cf04a19b9a3d5d7c904d71bc9e4ea408.tar.bz2
p7519: do not rely on "xargs -d" in test
Convert the test to use a more portable method to update the mtime on a large number of files under version control. The Mac version of xargs does not support the "-d" option. Likewise, the "-0" and "--null" options are not portable. Furthermore, use `test-tool chmtime` rather than `touch` to update the mtime to ensure that it is actually updated (especially on file systems with only whole second resolution). Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Reviewed-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/perf/p7519-fsmonitor.sh')
-rwxr-xr-xt/perf/p7519-fsmonitor.sh12
1 files changed, 11 insertions, 1 deletions
diff --git a/t/perf/p7519-fsmonitor.sh b/t/perf/p7519-fsmonitor.sh
index 9b43342..6677e0e 100755
--- a/t/perf/p7519-fsmonitor.sh
+++ b/t/perf/p7519-fsmonitor.sh
@@ -164,8 +164,18 @@ test_fsmonitor_suite() {
git status -uall
'
+ # Update the mtimes on upto 100k files to make status think
+ # that they are dirty. For simplicity, omit any files with
+ # LFs (i.e. anything that ls-files thinks it needs to dquote).
+ # Then fully backslash-quote the paths to capture any
+ # whitespace so that they pass thru xargs properly.
+ #
test_perf_w_drop_caches "status (dirty) ($DESC)" '
- git ls-files | head -100000 | xargs -d "\n" touch -h &&
+ git ls-files | \
+ head -100000 | \
+ grep -v \" | \
+ sed '\''s/\(.\)/\\\1/g'\'' | \
+ xargs test-tool chmtime -300 &&
git status
'