Re: [Patch v1 1/3] test-lib-functions.sh: add generate_zero_bytes function
- From
Jeff King <peff@peff.net>
- Date
- Feb 12, 2019, 00:37 UTC
- Message-ID
- <20190212003735.GH13301@sigill.intra.peff.net>
- In-Reply-To
- <CAPig+cRARdkKN-wR4EzVSzxuK51VOPf-kFFG57kkEsnFBfe4TA@mail.gmail.com>
On Sat, Feb 09, 2019 at 09:05:04PM -0500, Eric Sunshine wrote:
Show 17 quoted lines
> On Sat, Feb 9, 2019 at 1:59 PM <randall.s.becker@rogers.com> 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 <rsbecker@nexbridge.com>
> > ---
> > 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.Yeah, I agree that'd be a little more idiomatic for our code base, but I'm fine with it either way.
> > +generate_zero_bytes () {
> > + perl -e 'if ($ARGV[0] == "infinity") {
>
> s/perl/"$PERL_PATH"/This shouldn't be necessary. perl() is a function that uses $PERL_PATH (so you only need $PERL_PATH when you're writing out another script that doesn't run in the same process space as the rest of the test code).
-Peff