usleep tests: Avoid failure due to known Cygwin 3.5.3 bug.
[gnulib.git] / tests / test-setlocale2.c
blobb64b64caf34513790f1a7190d7807609c9d02f26
1 /* Test of setting the current locale.
2 Copyright (C) 2011-2024 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 #include <config.h>
19 #include <locale.h>
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <string.h>
25 int
26 main ()
28 /* Try to set the locale by implicitly looking at the LC_ALL environment
29 variable. */
30 if (setlocale (LC_ALL, "") != NULL)
31 /* It was successful. Check whether LC_CTYPE is non-trivial. */
32 if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
34 fprintf (stderr, "setlocale did not fail for implicit %s\n",
35 getenv ("LC_ALL"));
36 return 1;
39 /* Reset the locale. */
40 if (setlocale (LC_ALL, "C") == NULL)
41 return 1;
43 /* Try to set the locale by explicitly looking at the LC_ALL environment
44 variable. */
45 if (setlocale (LC_ALL, getenv ("LC_ALL")) != NULL)
46 /* It was successful. Check whether LC_CTYPE is non-trivial. */
47 if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
49 fprintf (stderr, "setlocale did not fail for explicit %s\n",
50 getenv ("LC_ALL"));
51 return 1;
54 return 0;