Re: [PATCH 01/11] p7519: use xargs -0 rather than -d in test
From: Jeff Hostetler <hidden>
Date: 2021-02-02 18:22:05
On 2/1/21 6:25 PM, Junio C Hamano wrote:
"Jeff Hostetler via GitGitGadget" [off-list ref] writes:quoted
From: Jeff Hostetler <redacted> The Mac version of xargs does not support the "-d" option. Convert the test setup to pipe the data set thru `lf_to_nul | xargs -0` instead."xargs -0" is not all that portable, either, and neither is "touch -h". But since the t/perf stuff already depends on having GNU toolchain anyway, I can be persuaded to believe that it is OK. Do we know that this part runs much later than the staged files are last touched, so that these uses of "touch" actually are effective to make the paths stat-dirty? Otherwise, we may be just "touch"ing them with the timestamp they already have after all.
I'm not sure now that you mention it. I suppose on modern filesystems that have mtimes with nanosecond fields we could (are) assuming that "touch" is actually doing something. On older filesystems (such as FAT32), you're right it is probably not doing anything at the speed that the test runs. TBH I'm not sure that the test needs the "-h". Symlinks are not that common and it shouldn't affect the timings that much if there are a few. I'm not sure what to do about "-0". Not even "--null" is portable. Let me do a little digging here.
Thanks.quoted
Signed-off-by: Jeff Hostetler <redacted> --- t/perf/p7519-fsmonitor.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/t/perf/p7519-fsmonitor.sh b/t/perf/p7519-fsmonitor.sh index 9b43342806b..7bb37e9a6c1 100755 --- a/t/perf/p7519-fsmonitor.sh +++ b/t/perf/p7519-fsmonitor.sh@@ -165,7 +165,7 @@ test_fsmonitor_suite() { ' test_perf_w_drop_caches "status (dirty) ($DESC)" ' - git ls-files | head -100000 | xargs -d "\n" touch -h && + git ls-files | head -100000 | lf_to_nul | xargs -0 touch -h && git status '