summaryrefslogtreecommitdiff
path: root/gnulib-tests/test-sigprocmask.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-tests/test-sigprocmask.c')
-rw-r--r--gnulib-tests/test-sigprocmask.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gnulib-tests/test-sigprocmask.c b/gnulib-tests/test-sigprocmask.c
index 55d11b0c..6aaf74da 100644
--- a/gnulib-tests/test-sigprocmask.c
+++ b/gnulib-tests/test-sigprocmask.c
@@ -1,5 +1,5 @@
/* Test of sigprocmask.
- Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ Copyright (C) 2011-2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,9 +44,15 @@ int
main (int argc, char *argv[])
{
sigset_t set;
- int pid = getpid ();
+ pid_t pid = getpid ();
char command[80];
+ if (sizeof (int) < sizeof pid && 0x7fffffff < pid)
+ {
+ fputs ("Skipping test: pid too large\n", stderr);
+ return 77;
+ }
+
signal (SIGINT, sigint_handler);
sigemptyset (&set);
@@ -60,7 +66,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, pid);
+ sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, (int) pid);
ASSERT (system (command) == 0);
/* Wait. */