1/* Test for strerror, strerror_r, and strerror_l.
2
3 Copyright (C) 2020-2022 Free Software Foundation, Inc.
4 This file is part of the GNU C Library.
5
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.
10
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.
15
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/>. */
19
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>
26
27#include <support/support.h>
28#include <support/check.h>
29
30static int
31do_test (void)
32{
33 unsetenv (name: "LANGUAGE");
34
35 xsetlocale (LC_ALL, locale: "C");
36
37 TEST_COMPARE_STRING (strerror (EINVAL), "Invalid argument");
38 TEST_COMPARE_STRING (strerror (-1), "Unknown error -1");
39
40 {
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");
50 }
51
52 locale_t l = xnewlocale (LC_ALL_MASK, locale: "pt_BR.UTF-8", NULL);
53
54 TEST_COMPARE_STRING (strerror_l (EINVAL, l), "Argumento inv\303\241lido");
55 TEST_COMPARE_STRING (strerror_l (-1, l), "Erro desconhecido -1");
56
57 xuselocale (newloc: l);
58
59 TEST_COMPARE_STRING (strerror (EINVAL), "Argumento inv\303\241lido");
60 TEST_COMPARE_STRING (strerror (-1), "Erro desconhecido -1");
61
62 {
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");
72 }
73
74 freelocale (dataset: l);
75
76 return 0;
77}
78
79#include <support/test-driver.c>
80

source code of glibc/string/tst-strerror.c