[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: execute tests: Avoid test failure on Android
From: |
Bruno Haible |
Subject: |
Re: execute tests: Avoid test failure on Android |
Date: |
Tue, 17 Jan 2023 22:15:54 +0100 |
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 <bruno@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)
{