tests: teach the test-tool to generate NUL bytes and use it
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 14 Feb 2019 21:33:12 +0000 (13:33 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Feb 2019 18:22:21 +0000 (10:22 -0800)
commitd5cfd142ec1425cec44a7c74a42e5b81112460c3
treee5755731b204245f589156762ce827ed5f706886
parentd99194822b8d8d3c7c2c8985b720b0e6a5542263
tests: teach the test-tool to generate NUL bytes and use it

In cc95bc2025 (t5562: replace /dev/zero with a pipe from
generate_zero_bytes, 2019-02-09), we replaced usage of /dev/zero (which
is not available on NonStop, apparently) by a Perl script snippet to
generate NUL bytes.

Sadly, it does not seem to work on NonStop, as t5562 reportedly hangs.

Worse, this also hangs in the Ubuntu 16.04 agents of the CI builds on
Azure Pipelines: for some reason, the Perl script snippet that is run
via `generate_zero_bytes` in t5562's 'CONTENT_LENGTH overflow ssite_t'
test case tries to write out an infinite amount of NUL bytes unless a
broken pipe is encountered, that snippet never encounters the broken
pipe, and keeps going until the build times out.

Oddly enough, this does not reproduce on the Windows and macOS agents,
nor in a local Ubuntu 18.04.

This developer tried for a day to figure out the exact circumstances
under which this hang happens, to no avail, the details remain a
mystery.

In the end, though, what counts is that this here change incidentally
fixes that hang (maybe also on NonStop?). Even more positively, it gets
rid of yet another unnecessary Perl invocation.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
t/helper/test-genzeros.c [new file with mode: 0644]
t/helper/test-tool.c
t/helper/test-tool.h
t/test-lib-functions.sh