diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | m4/pthread_sigmask.m4 | 7 | ||||
-rw-r--r-- | tests/test-login_tty.c | 2 | ||||
-rw-r--r-- | tests/test-pthread_sigmask1.c | 11 | ||||
-rw-r--r-- | tests/test-sigprocmask.c | 5 |
5 files changed, 28 insertions, 7 deletions
@@ -1,3 +1,13 @@ +2022-11-26 Paul Eggert <eggert@cs.ucla.edu> + + Prefer "kill -INT" to killing with a number + * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): + * tests/test-login_tty.c (main): + * tests/test-pthread_sigmask1.c (main): + * tests/test-sigprocmask.c (main): + Prefer "kill -INT" to "kill -N" where N is SIGINT’s value. + Don’t assume pid_t fits in int. + 2022-11-25 Bruno Haible <bruno@clisp.org> In 'trap' commands, prefer symbolic to numeric signal names. diff --git a/m4/pthread_sigmask.m4 b/m4/pthread_sigmask.m4 index 0aa8c53f9e..8282a371e4 100644 --- a/m4/pthread_sigmask.m4 +++ b/m4/pthread_sigmask.m4 @@ -215,6 +215,7 @@ int main () LIBS="$LIBS $LIBMULTITHREAD"]) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ +#include <limits.h> #include <pthread.h> #include <signal.h> #include <stdio.h> @@ -230,14 +231,16 @@ sigint_handler (int sig) int main () { sigset_t set; - int pid = getpid (); + pid_t pid = getpid (); char command[80]; + if (LONG_MAX < pid) + return 6; signal (SIGINT, sigint_handler); sigemptyset (&set); sigaddset (&set, SIGINT); if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) == 0)) return 1; - sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); + sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid); if (!(system (command) == 0)) return 2; sleep (2); diff --git a/tests/test-login_tty.c b/tests/test-login_tty.c index 3ea6968e41..c8f971de4e 100644 --- a/tests/test-login_tty.c +++ b/tests/test-login_tty.c @@ -64,7 +64,7 @@ main () abort (); for (fd = 0; fd < 3; fd++) { - int sid = tcgetsid (fd); + pid_t sid = tcgetsid (fd); if (!(sid == -1 ? errno == ENOSYS : sid == getpid ())) abort (); } diff --git a/tests/test-pthread_sigmask1.c b/tests/test-pthread_sigmask1.c index a7816b5e55..0f87baed7c 100644 --- a/tests/test-pthread_sigmask1.c +++ b/tests/test-pthread_sigmask1.c @@ -24,6 +24,7 @@ SIGNATURE_CHECK (pthread_sigmask, int, (int, const sigset_t *, sigset_t *)); #include <errno.h> +#include <limits.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -44,9 +45,15 @@ int main (int argc, char *argv[]) { sigset_t set; - int pid = getpid (); + pid_t pid = getpid (); char command[80]; + if (LONG_MAX < pid) + { + fputs ("Skipping test: pid too large\n", stderr); + return 77; + } + signal (SIGINT, sigint_handler); sigemptyset (&set); @@ -59,7 +66,7 @@ main (int argc, char *argv[]) ASSERT (pthread_sigmask (SIG_BLOCK, &set, NULL) == 0); /* Request a SIGINT signal from outside. */ - sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); + sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid); ASSERT (system (command) == 0); /* Wait. */ diff --git a/tests/test-sigprocmask.c b/tests/test-sigprocmask.c index 4bab4c1cce..574bc82e1a 100644 --- a/tests/test-sigprocmask.c +++ b/tests/test-sigprocmask.c @@ -24,6 +24,7 @@ SIGNATURE_CHECK (sigprocmask, int, (int, const sigset_t *, sigset_t *)); #include <errno.h> +#include <limits.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -47,7 +48,7 @@ main (int argc, char *argv[]) pid_t pid = getpid (); char command[80]; - if (sizeof (int) < sizeof pid && 0x7fffffff < pid) + if (LONG_MAX < pid) { fputs ("Skipping test: pid too large\n", stderr); return 77; @@ -66,7 +67,7 @@ main (int argc, char *argv[]) ASSERT (sigprocmask (SIG_BLOCK, &set, NULL) == 0); /* Request a SIGINT signal from outside. */ - sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, (int) pid); + sprintf (command, "sh -c 'sleep 1; kill -INT %ld' &", (long) pid); ASSERT (system (command) == 0); /* Wait. */ |