diff options
-rw-r--r-- | string/Makefile | 6 | ||||
-rw-r--r-- | string/tst-strsignal.c | 57 |
2 files changed, 61 insertions, 2 deletions
diff --git a/string/Makefile b/string/Makefile index e1cca5516b..5b67808475 100644 --- a/string/Makefile +++ b/string/Makefile @@ -60,7 +60,8 @@ tests := tester inl-tester noinl-tester testcopy test-ffs \ bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ tst-strtok_r bug-strcoll2 tst-cmp tst-xbzero-opt \ test-endian-types test-endian-file-scope \ - test-endian-sign-conversion tst-memmove-overflow + test-endian-sign-conversion tst-memmove-overflow \ + tst-strsignal # This test allocates a lot of memory and can run for a long time. xtests = tst-strcoll-overflow @@ -105,7 +106,7 @@ $(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out LOCALES := de_DE.UTF-8 en_US.ISO-8859-1 en_US.UTF-8 \ tr_TR.ISO-8859-9 tr_TR.UTF-8 cs_CZ.UTF-8 \ - da_DK.ISO-8859-1 en_GB.UTF-8 + da_DK.ISO-8859-1 en_GB.UTF-8 pt_BR.UTF-8 include ../gen-locales.mk $(objpfx)test-strcasecmp.out: $(gen-locales) @@ -115,5 +116,6 @@ $(objpfx)tst-strxfrm2.out: $(gen-locales) # bug-strcoll2 needs cs_CZ.UTF-8 and da_DK.ISO-8859-1. $(objpfx)bug-strcoll2.out: $(gen-locales) $(objpfx)tst-strcoll-overflow.out: $(gen-locales) +$(objpfx)tst-strsignal.out: $(gen-locales) endif diff --git a/string/tst-strsignal.c b/string/tst-strsignal.c new file mode 100644 index 0000000000..93a46dbc78 --- /dev/null +++ b/string/tst-strsignal.c @@ -0,0 +1,57 @@ +/* Test for strsignal. + + Copyright (C) 2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#include <string.h> +#include <stdio.h> +#include <signal.h> +#include <locale.h> +#include <array_length.h> + +#include <support/support.h> +#include <support/check.h> + +static int +do_test (void) +{ + xsetlocale (LC_ALL, "C"); + + TEST_COMPARE_STRING (strsignal (SIGINT), "Interrupt"); + TEST_COMPARE_STRING (strsignal (-1), "Unknown signal -1"); +#ifdef SIGRTMIN + TEST_COMPARE_STRING (strsignal (SIGRTMIN), "Real-time signal 0"); +#endif +#ifdef SIGRTMAX + TEST_COMPARE_STRING (strsignal (SIGRTMAX+1), "Unknown signal 65"); +#endif + + xsetlocale (LC_ALL, "pt_BR.UTF-8"); + + TEST_COMPARE_STRING (strsignal (SIGINT), "Interrup\xc3\xa7\xc3\xa3\x6f"); + TEST_COMPARE_STRING (strsignal (-1), "Sinal desconhecido -1"); +#ifdef SIGRTMI + TEST_COMPARE_STRING (strsignal (SIGRTMIN), "Sinal de tempo-real 0"); +#endif +#ifdef SIGRTMAX + TEST_COMPARE_STRING (strsignal (SIGRTMAX+1), "Sinal desconhecido 65"); +#endif + + return 0; +} + +#include <support/test-driver.c> |