On February 8, 2019 13:03, Jeff King wrote: > To: Randall S. Becker <rsbecker@xxxxxxxxxxxxx> > Cc: 'Junio C Hamano' <gitster@xxxxxxxxx>; git@xxxxxxxxxxxxxxx; 'Linux > Kernel' <linux-kernel@xxxxxxxxxxxxxxx>; git-packagers@xxxxxxxxxxxxxxxx > Subject: Re: [Breakage] Git v2.21.0-rc0 - t5318 (NonStop) > > On Fri, Feb 08, 2019 at 12:49:59PM -0500, Randall S. Becker wrote: > > > > We did discuss this at the time of the patch, but it seems we > > > already use /dev/zero in a bunch of places: > > > > > > > > > https://public-inbox.org/git/xmqqbm57rkg5.fsf@gitster-ct.c.googlers. > > > com/ > > > > > > Were you just skipping the other tests before? > > > > I did not catch the implications of the review at the time - my bad. We > were not intentionally skipping the tests. It looks like some are automatically > skipped. t4153 automatically skips (missing TTY), and t5562 fails also but for > a different reason (hang - we don't have apache2 to serve up http content). > > > > Would you object to something like this: > > > > if [ ! -e /dev/zero ]; then > > # use shred or some other mechanism (still trying to figure out a > > solution) else > > # existing dd > > fi > > That's fine, as long as it's wrapped up in a function in order to keep the tests > readable. > > Though I suspect we may be able to just find a solution that works > everywhere, without having two different implementations. If we know we > need $count bytes for dd, we could probably just generate a file with that > many NULs in it. For this, we could use truncate -s count file instead of dd to get a fixed size file of nulls. This would remove the need for /dev/zero in t5318 (the patch below probably will wrap badly in my mailer so I can submit a real patch separately. @@ -383,7 +383,7 @@ corrupt_graph_and_verify() { cp $objdir/info/commit-graph commit-graph-backup && printf "$data" | dd of="$objdir/info/commit-graph" bs=1 seek="$pos" conv=notrunc && dd of="$objdir/info/commit-graph" bs=1 seek="$zero_pos" count=0 && - dd if=/dev/zero of="$objdir/info/commit-graph" bs=1 seek="$zero_pos" count=$(($orig_size - $zero_pos)) && + truncate -s $orig_size "$objdir/info/commit-graph" && test_must_fail git commit-graph verify 2>test_err && grep -v "^+" test_err >err && test_i18ngrep "$grepstr" err This passes on my platform. > Other cases don't seem to actually care that they're getting NULs, and are > just redirecting stdin from /dev/zero to get an infinite amount of input. They > could probably use "yes" for that. What about reading from /dev/null? Regards, Randall