summaryrefslogtreecommitdiff
path: root/test/locale/tst-langinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/locale/tst-langinfo.c')
-rw-r--r--test/locale/tst-langinfo.c283
1 files changed, 0 insertions, 283 deletions
diff --git a/test/locale/tst-langinfo.c b/test/locale/tst-langinfo.c
deleted file mode 100644
index aca8239bf..000000000
--- a/test/locale/tst-langinfo.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Test program for nl_langinfo() function.
- Copyright (C) 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>.
-
- 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
- <http://www.gnu.org/licenses/>. */
-
-#include <langinfo.h>
-#include <locale.h>
-#include <stdio.h>
-#include <string.h>
-
-
-struct map
-{
- const char *str;
- int val;
-} map[] =
-{
-#define VAL(name) { #name, name }
- VAL (ABDAY_1),
- VAL (ABDAY_2),
- VAL (ABDAY_3),
- VAL (ABDAY_4),
- VAL (ABDAY_5),
- VAL (ABDAY_6),
- VAL (ABDAY_7),
- VAL (ABMON_1),
- VAL (ABMON_10),
- VAL (ABMON_11),
- VAL (ABMON_12),
- VAL (ABMON_2),
- VAL (ABMON_3),
- VAL (ABMON_4),
- VAL (ABMON_5),
- VAL (ABMON_6),
- VAL (ABMON_7),
- VAL (ABMON_8),
- VAL (ABMON_9),
- VAL (ALT_DIGITS),
- VAL (AM_STR),
- VAL (CRNCYSTR),
- VAL (CURRENCY_SYMBOL),
- VAL (DAY_1),
- VAL (DAY_2),
- VAL (DAY_3),
- VAL (DAY_4),
- VAL (DAY_5),
- VAL (DAY_6),
- VAL (DAY_7),
- VAL (DECIMAL_POINT),
- VAL (D_FMT),
- VAL (D_T_FMT),
- VAL (ERA),
- VAL (ERA_D_FMT),
- VAL (ERA_D_T_FMT),
- VAL (ERA_T_FMT),
- VAL (ERA_YEAR),
- VAL (FRAC_DIGITS),
- VAL (GROUPING),
- VAL (INT_CURR_SYMBOL),
- VAL (INT_FRAC_DIGITS),
- VAL (MON_1),
- VAL (MON_10),
- VAL (MON_11),
- VAL (MON_12),
- VAL (MON_2),
- VAL (MON_3),
- VAL (MON_4),
- VAL (MON_5),
- VAL (MON_6),
- VAL (MON_7),
- VAL (MON_8),
- VAL (MON_9),
- VAL (MON_DECIMAL_POINT),
- VAL (MON_GROUPING),
- VAL (MON_THOUSANDS_SEP),
- VAL (NEGATIVE_SIGN),
- VAL (NOEXPR),
- VAL (NOSTR),
- VAL (N_CS_PRECEDES),
- VAL (N_SEP_BY_SPACE),
- VAL (N_SIGN_POSN),
- VAL (PM_STR),
- VAL (POSITIVE_SIGN),
- VAL (P_CS_PRECEDES),
- VAL (P_SEP_BY_SPACE),
- VAL (P_SIGN_POSN),
- VAL (RADIXCHAR),
- VAL (THOUSANDS_SEP),
- VAL (THOUSEP),
- VAL (T_FMT),
- VAL (T_FMT_AMPM),
- VAL (YESEXPR),
- VAL (YESSTR)
-};
-
-
-static int
-map_paramstr (const char *str)
-{
- int low = 0;
- int high = sizeof (map) / sizeof (map[0]);
-
- while (low < high)
- {
- int med = (low + high) / 2;
- int cmpres;
-
- cmpres = strcmp (str, map[med].str);
- if (cmpres == 0)
- return map[med].val;
- else if (cmpres > 0)
- low = med + 1;
- else
- high = med;
- }
-
- return -1;
-}
-
-
-#ifdef DEBUG
-# define REASON(str) printf ("\"%s\" ignored: %s\n", buf, str)
-#else
-# define REASON(str)
-#endif
-
-int
-main (void)
-{
- int result = 0;
-
- while (! feof (stdin))
- {
- char buf[1000];
- char *rp;
- char *locale;
- char *paramstr;
- char *expected;
- char *actual;
- int param;
-
- if (fgets (buf, sizeof (buf), stdin) == NULL)
- break;
-
- /* Split the fields. There are three is them:
- 1. locale
- 2. langinfo() parameter
- 3. expected result; this can be a string with white space etc.
- */
- rp = buf;
- while (*rp == ' ' || *rp == '\t')
- ++rp;
-
- if (*rp == '#')
- {
- /* It's a comment line. Ignore it. */
- REASON ("comment");
- continue;
- }
- locale = rp;
-
- while (*rp != '\0' && *rp != ' ' && *rp != '\t' && *rp != '\n')
- ++rp;
- if (*rp == '\0' || *rp == '\n')
- {
- /* Incomplete line. */
- REASON ("incomplete line");
- continue;
- }
- *rp++ = '\0';
-
- while (*rp == ' ' || *rp == '\t')
- ++rp;
- paramstr = rp;
-
- while (*rp != '\0' && *rp != ' ' && *rp != '\t' && *rp != '\n')
- ++rp;
- if (*rp == '\0' || *rp == '\n')
- {
- /* Incomplete line. */
- REASON ("incomplete line");
- continue;
- }
- *rp++ = '\0';
-
- while (*rp == ' ' || *rp == '\t')
- ++rp;
-
- if (*rp == '"')
- {
- char *wp;
-
- expected = wp = ++rp;
- while (*rp != '"' && *rp != '\n' && *rp != '\0')
- {
- if (*rp == '\\')
- {
- ++rp;
- if (*rp == '\0')
- break;
- if (*rp >= '0' && *rp <= '9')
- {
- int val = *rp - '0';
- if (rp[1] >= '0' && rp[1] <= '9')
- {
- ++rp;
- val *= 10;
- val += *rp - '0';
- if (rp[1] >= '0' && rp[1] <= '9')
- {
- ++rp;
- val *= 10;
- val += *rp - '0';
- }
- }
- *rp = val;
- }
- }
- *wp++ = *rp++;
- }
-
- if (*rp != '"')
- {
- REASON ("missing '\"'");
- continue;
- }
-
- *wp = '\0';
- }
- else
- {
- expected = rp;
- while (*rp != '\0' && *rp != '\n')
- ++rp;
- *rp = '\0';
- }
-
- param = map_paramstr (paramstr);
- if (param == -1)
- {
- /* Invalid parameter. */
- REASON ("invalid parameter");
- continue;
- }
-
- /* Set the locale and check whether it worked. */
- printf ("LC_ALL=%s nl_langinfo(%s)", locale, paramstr);
- setlocale (LC_ALL, locale);
- if (strcmp (locale, setlocale (LC_ALL, NULL)) != 0)
- {
- puts (": failed to set locale");
- result = 1;
- continue;
- }
-
- actual = nl_langinfo (param);
- printf (" = \"%s\", ", actual);
-
- if (strcmp (actual, expected) == 0)
- puts ("OK");
- else
- {
- printf ("FAILED (expected: %s)\n", expected);
- result = 1;
- }
- }
-
- return result;
-}