X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-sigprocmask.c;h=c6c771eace912b2a443c9b809a1200d5327e61a2;hb=1276a2c5f24c0c932426aca9c899fa524d2443f2;hp=628c1aba7f8055ccd6fc982eda2abcc67d18fe66;hpb=56005a21e8f9f434212a19dcb628c6d3b179fd08;p=gnulib.git diff --git a/tests/test-sigprocmask.c b/tests/test-sigprocmask.c index 628c1aba7..c6c771eac 100644 --- a/tests/test-sigprocmask.c +++ b/tests/test-sigprocmask.c @@ -1,5 +1,5 @@ /* Test of sigprocmask. - Copyright (C) 2011 Free Software Foundation, Inc. + Copyright (C) 2011-2014 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,8 +66,8 @@ 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); - system (command); + sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, (int) pid); + ASSERT (system (command) == 0); /* Wait. */ sleep (2);