X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-strsignal.c;h=8d68228d105ca2ee29ce49f51cb81aa308cba74d;hb=5191b3546cfb6c163228c23f214e325ddf60d46f;hp=16544f209debb091d1479777dd39fccff37ada35;hpb=ec1d2ed4fd41d9ff10d11a7a8784293163fb558d;p=gnulib.git diff --git a/tests/test-strsignal.c b/tests/test-strsignal.c index 16544f209..8d68228d1 100644 --- a/tests/test-strsignal.c +++ b/tests/test-strsignal.c @@ -1,5 +1,5 @@ /* Test of strsignal() function. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-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 @@ -12,28 +12,20 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ /* Written by Colin Watson , 2008. */ #include -#include -#include -#include #include -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - abort (); \ - } \ - } \ - while (0) +#include "signature.h" +SIGNATURE_CHECK (strsignal, char *, (int)); + +#include + +#include "macros.h" #if HAVE_DECL_SYS_SIGLIST # define ASSERT_DESCRIPTION(got, expect) @@ -43,9 +35,13 @@ #endif int -main (int argc, char **argv) +main (void) { - char *str; + /* Work around bug in cygwin 1.5.25 by declaring str as + const char *, even though strsignal is supposed to return char *. + At any rate, this doesn't hurt, since POSIX 200x states that "The + string pointed to shall not be modified by the application." */ + const char *str; /* We try a couple of signals, since not all signals are supported everywhere. Notwithstanding the #ifdef for neatness, SIGINT should in @@ -65,5 +61,17 @@ main (int argc, char **argv) ASSERT_DESCRIPTION (str, "Interrupt"); #endif + /* Test that for out-of-range signal numbers the result is usable. */ + + str = strsignal (-1); + ASSERT (str); + ASSERT (str != (char *) -1); + ASSERT (strlen (str)); + + str = strsignal (9249234); + ASSERT (str); + ASSERT (str != (char *) -1); + ASSERT (strlen (str)); + return 0; }