Eric Blake wrote: > > Apparently the SIGPIPE handler gets set to SIG_IGN, either by 'make' or > > by the test-driver. > > Known regression in make 4.4: > https://savannah.gnu.org/bugs/index.php?63307
Thanks. Indeed, I can reproduce the test failure also on a glibc system, with make 4.4 in $PATH. Thus I'm generalizing the workaround: 2023-01-17 Bruno Haible <br...@clisp.org> execute tests: Avoid test failure with GNU make 4.4. Reported by Eric Blake in <https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00157.html>. * tests/test-execute-main.c (main): Reset the SIGPIPE handler to default on all platforms. diff --git a/tests/test-execute-main.c b/tests/test-execute-main.c index fbaa9c9d2e..2088408756 100644 --- a/tests/test-execute-main.c +++ b/tests/test-execute-main.c @@ -58,17 +58,16 @@ main (int argc, char *argv[]) const char *progname = "test-execute-child"; int test = atoi (argv[2]); -#if defined __ANDROID__ - /* On Android 11, when this test is executed through 'make' (GNU make 4.4) and + /* When this test is executed through 'make' (GNU make 4.4) and build-aux/test-driver, i.e. through make check TESTS=test-execute.sh or rm -f test-execute.sh.log; make test-execute.sh.log - the signal handler for SIGPIPE is set to SIG_IGN. This causes the tests - 3 and 4 to fail. Work around it by resetting the signal handler for - SIGPIPE to the default. */ + the signal handler for SIGPIPE is set to SIG_IGN. This is a bug in + GNU make 4.4: <https://savannah.gnu.org/bugs/index.php?63307>. + It causes the tests 3 and 4 to fail. Work around it by resetting + the signal handler for SIGPIPE to the default. */ signal (SIGPIPE, SIG_DFL); -#endif switch (test) {