From: Eric Sunshine Date: Sun, 10 Feb 2019 02:05:04 GMT Subject: Re: [Patch v1 1/3] test-lib-functions.sh: add generate_zero_bytes function Message-ID: In-Reply-To: <20190209185930.5256-2-randall.s.becker@rogers.com> On Sat, Feb 9, 2019 at 1:59 PM wrote: > t5318 and t5562 used /dev/zero, which is not portable. This function > provides both a fixed block of NUL bytes and an infinite stream of NULs. > > Signed-off-by: Randall S. Becker > --- > diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh > @@ -116,6 +116,19 @@ remove_cr () { > +# Generate an output of $1 bytes of all zeroes (NULs, not ASCII zeroes). > +# If $1 is 'infinity', output forever or until the receiving pipe stops reading, > +# whichever comes first. This is a somewhat unusual API. A (perhaps) more intuitive behavior would be for it to emit an infinite stream of NULs when given no argument, and a limited number of NULs when given an argument. Redefining the behavior like that also fixes the "problem" with the current implementation erroring-out if no argument is provided. > +generate_zero_bytes () { > + perl -e 'if ($ARGV[0] == "infinity") { s/perl/"$PERL_PATH"/ > + while (-1) { > + print "\0" > + } Or, more compactly: print "\0" while 1; > + } else { > + print "\0" x $ARGV[0] > + }' "$@" > +}