Re: [PATCH 01/11] p7519: use xargs -0 rather than -d in test

Started by Junio C Hamano on Feb 1, 2021 · 2 messages from 2 authors · Last reply Feb 2, 2021

open the first message on its own page

Message details and related content
"Jeff Hostetler via GitGitGadget" [off-list ref] writes:
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.

Thanks.
quoted hunk
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
 	'
Message details and related content

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
  	'
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help