Re: [PATCH 01/11] p7519: use xargs -0 rather than -d in test
- From
- Jeff Hostetler <git@jeffhostetler.com>
- Date
- Feb 2, 2021, 18:16 UTC
- Message-ID
- <b2c548b7-f641-2398-c200-d774af9cf628@jeffhostetler.com>
- In-Reply-To
- <xmqqsg6fid57.fsf@gitster.c.googlers.com>
On 2/1/21 6:25 PM, Junio C Hamano wrote:
Show 16 quoted lines
> "Jeff Hostetler via GitGitGadget" <gitgitgadget@gmail.com> writes: > >> From: Jeff Hostetler <jeffhost@microsoft.com> >> >> 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.
Show 20 quoted lines
>
> Thanks.
>
>> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
>> ---
>> 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
>> '