test-lib-functions.sh: add generate_zero_bytes function
authorRandall S. Becker <rsbecker@nexbridge.com>
Sat, 9 Feb 2019 18:59:28 +0000 (13:59 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 12 Feb 2019 17:09:06 +0000 (09:09 -0800)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib-functions.sh
index 92cf8f812cca26c94c8054ccd40af806f6b77310..bbf68712ccce6556b92004f55a8de14216dd57ac 100644 (file)
@@ -116,6 +116,19 @@ remove_cr () {
        tr '\015' Q | sed -e 's/Q$//'
 }
 
+# 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.
+generate_zero_bytes () {
+       perl -e 'if ($ARGV[0] == "infinity") {
+               while (-1) {
+                       print "\0"
+               }
+       } else {
+               print "\0" x $ARGV[0]
+       }' "$@"
+}
+
 # In some bourne shell implementations, the "unset" builtin returns
 # nonzero status when a variable to be unset was not set in the first
 # place.