git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [Patch v1 1/3] test-lib-functions.sh: add generate_zero_bytes function

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Feb 10, 2019, 02:05 UTC
Message-ID
<CAPig+cRARdkKN-wR4EzVSzxuK51VOPf-kFFG57kkEsnFBfe4TA@mail.gmail.com>
In-Reply-To
<20190209185930.5256-2-randall.s.becker@rogers.com>
On Sat, Feb 9, 2019 at 1:59 PM <randall.s.becker@rogers.com> wrote:
Show 10 quoted lines
> 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.

> +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]
> +       }' "$@"
> +}
Previous: randall.s.becker@rogers.comNext: Randall S. Becker
Message 3 of 24 in “2.21.0-rc0 test fixes resulting from use of /dev/zero”
  1. 0/3 2.21.0-rc0 test fixes resulting from use of /dev/zerorandall.s.becker@rogers.com, Feb 9, 2019
  2. 1/3 test-lib-functions.sh: add generate_zero_bytes functionrandall.s.becker@rogers.com, Feb 9, 2019
  3. Eric SunshineFeb 10, 2019
  4. Randall S. BeckerFeb 10, 2019
  5. Jeff KingFeb 12, 2019
  6. Eric SunshineFeb 12, 2019
  7. randall.s.becker@rogers.comFeb 12, 2019
  8. 3/3 t5562: replace /dev/zero with a pipe from generate_zero_bytesrandall.s.becker@rogers.com, Feb 9, 2019
  9. Eric SunshineFeb 10, 2019
  10. Junio C HamanoFeb 12, 2019
  11. Johannes SixtFeb 12, 2019
  12. Junio C HamanoFeb 13, 2019
  13. t5562: do not depend on /dev/zeroMax Kirillov, Feb 15, 2019
  14. Randall S. BeckerFeb 15, 2019
  15. Junio C HamanoFeb 15, 2019
  16. Randall S. BeckerFeb 15, 2019
  17. Junio C HamanoFeb 15, 2019
  18. 2/3 t5318: replace use of /dev/zero with generate_zero_bytesrandall.s.becker@rogers.com, Feb 9, 2019
  19. Eric SunshineFeb 10, 2019
  20. Junio C HamanoFeb 12, 2019
  21. Junio C HamanoFeb 13, 2019
  22. Randall S. BeckerFeb 13, 2019
  23. Junio C HamanoFeb 13, 2019
  24. Randall S. BeckerFeb 13, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.