string: Improve fortify with clang
[glibc.git] / string / tst-strerror.c
blobca099e15be210c360c4e334b3f0b791455d08d1e
1 /* Test for strerror, strerror_r, and strerror_l.
3 Copyright (C) 2020-2024 Free Software Foundation, Inc.
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <https://www.gnu.org/licenses/>. */
20 #include <string.h>
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <errno.h>
24 #include <locale.h>
25 #include <array_length.h>
27 #include <support/support.h>
28 #include <support/check.h>
30 static int
31 do_test (void)
33 unsetenv ("LANGUAGE");
35 xsetlocale (LC_ALL, "C");
37 TEST_COMPARE_STRING (strerror (EINVAL), "Invalid argument");
38 TEST_COMPARE_STRING (strerror (-1), "Unknown error -1");
41 char buffer[32];
42 TEST_COMPARE_STRING (strerror_r (EINVAL, buffer, 8),
43 "Invalid argument");
44 TEST_COMPARE_STRING (strerror_r (-1, buffer, 8),
45 "Unknown");
46 TEST_COMPARE_STRING (strerror_r (-1, buffer, 16),
47 "Unknown error -");
48 TEST_COMPARE_STRING (strerror_r (-1, buffer, 32),
49 "Unknown error -1");
52 locale_t l = xnewlocale (LC_ALL_MASK, "pt_BR.UTF-8", NULL);
54 TEST_COMPARE_STRING (strerror_l (EINVAL, l), "Argumento inv\303\241lido");
55 TEST_COMPARE_STRING (strerror_l (-1, l), "Erro desconhecido -1");
57 xuselocale (l);
59 TEST_COMPARE_STRING (strerror (EINVAL), "Argumento inv\303\241lido");
60 TEST_COMPARE_STRING (strerror (-1), "Erro desconhecido -1");
63 char buffer[32];
64 TEST_COMPARE_STRING (strerror_r (EINVAL, buffer, 8),
65 "Argumento inv\303\241lido");
66 TEST_COMPARE_STRING (strerror_r (-1, buffer, 8),
67 "Erro de");
68 TEST_COMPARE_STRING (strerror_r (-1, buffer, 16),
69 "Erro desconheci");
70 TEST_COMPARE_STRING (strerror_r (-1, buffer, 32),
71 "Erro desconhecido -1");
74 freelocale (l);
76 return 0;
79 #include <support/test-driver.c>