* Makefile: Add rules to build, run, and distribute tst-langinfo.
	* tst-langinfo.c: New file.
	* tst-langinfo.sh: New file.
This commit is contained in:
Ulrich Drepper 2000-07-25 03:54:45 +00:00
parent 71433ae4fe
commit f79d99cb26
4 changed files with 576 additions and 3 deletions

View File

@ -1,5 +1,9 @@
2000-07-24 Ulrich Drepper <drepper@redhat.com>
* Makefile: Add rules to build, run, and distribute tst-langinfo.
* tst-langinfo.c: New file.
* tst-langinfo.sh: New file.
* locales/ja_JP (era_d_t_fmt): Fix typo.
* Makefile: Add rules to build, run, and distribute tst-wctype.

View File

@ -43,7 +43,7 @@ vpath %.h tests-mbwc
test-srcs := collate-test xfrm-test tst-fmon tst-rpmatch tst-trans \
tst-mbswcs1 tst-mbswcs2 tst-mbswcs3 tst-mbswcs4 tst-mbswcs5 \
tst-ctype tst-wctype
tst-ctype tst-wctype tst-langinfo
#test-input := de_DE.ISO-8859-1 da_DK.ISO-8859-1 fr_CA,2.13.ISO-8859-1 \
# hr_HR.ISO-8859-2 # once it is fixed: cs_CZ.ISO-8859-2
test-input := de_DE.ISO-8859-1 en_US.ISO-8859-1
@ -70,7 +70,7 @@ distribute := CHECKSUMS README SUPPORTED ChangeLog \
th_TH.in cs_CZ.in tst-mbswcs.sh tst-trans.sh tst-ctype.sh \
tst-ctype-de_DE.in $(wildcard tests-mbwc/*.[ch]) \
$(addprefix tst-fmon-locales/tstfmon_,$(fmon-tests)) \
gen-locale.sh show-ucs-data.c \
gen-locale.sh show-ucs-data.c tst-langinfo.sh \
tst-wctype.sh tst-wctype.input
# Get $(inst_i18ndir) defined.
@ -137,7 +137,8 @@ $(addsuffix .out,$(addprefix $(objpfx),$(locale_test_suite))): %: \
tests: $(objpfx)sort-test.out $(objpfx)tst-fmon.out $(objpfx)tst-locale.out \
$(objpfx)tst-rpmatch.out $(objpfx)tst-trans.out \
$(objpfx)tst-mbswcs.out $(objpfx)tst-ctype.out $(objpfx)tst-wctype.out
$(objpfx)tst-mbswcs.out $(objpfx)tst-ctype.out $(objpfx)tst-wctype.out \
$(objpfx)tst-langinfo.out
$(objpfx)sort-test.out: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \
$(test-input-data) $(addprefix $(objpfx),$(CTYPE_FILES))
@ -171,6 +172,10 @@ $(objpfx)tst-wctype.out: tst-wctype.sh $(objpfx)tst-wctype \
$(objpfx)sort-test.out tst-wctype.input \
$(addprefix $(objpfx),$(CTYPE_FILES))
$(SHELL) -e $< $(common-objpfx) '$(built-program-cmd)'
$(objpfx)tst-langinfo.out: tst-langinfo.sh $(objpfx)tst-langinfo \
$(objpfx)sort-test.out \
$(addprefix $(objpfx),$(CTYPE_FILES))
$(SHELL) -e $< $(common-objpfx) '$(built-program-cmd)'
endif
# Sometimes the whole collection of locale files should be installed.

263
localedata/tst-langinfo.c Normal file
View File

@ -0,0 +1,263 @@
#include <langinfo.h>
#include <locale.h>
#include <stdio.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 <= 'p')
{
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;
}

301
localedata/tst-langinfo.sh Executable file
View File

@ -0,0 +1,301 @@
#! /bin/sh
# Test nl_langinfo.
# Copyright (C) 2000 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 Library General Public License as
# published by the Free Software Foundation; either version 2 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
common_objpfx=$1
run_program_prefix=$2
# Run the test program.
cat <<"EOF" |
# Only decimal numerical escape sequences allowed in strings.
C ABDAY_1 Sun
C ABDAY_2 Mon
C ABDAY_3 Tue
C ABDAY_4 Wed
C ABDAY_5 Thu
C ABDAY_6 Fri
C ABDAY_7 Sat
C DAY_1 Sunday
C DAY_2 Monday
C DAY_3 Tuesday
C DAY_4 Wednesday
C DAY_5 Thursday
C DAY_6 Friday
C DAY_7 Saturday
C ABMON_1 Jan
C ABMON_2 Feb
C ABMON_3 Mar
C ABMON_4 Apr
C ABMON_5 May
C ABMON_6 Jun
C ABMON_7 Jul
C ABMON_8 Aug
C ABMON_9 Sep
C ABMON_10 Oct
C ABMON_11 Nov
C ABMON_12 Dec
C MON_1 January
C MON_2 February
C MON_3 March
C MON_4 April
C MON_5 May
C MON_6 June
C MON_7 July
C MON_8 August
C MON_9 September
C MON_10 October
C MON_11 November
C MON_12 December
C AM_STR AM
C PM_STR PM
C D_T_FMT "%a %b %e %H:%M:%S %Y"
C D_FMT "%m/%d/%y"
C T_FMT "%H:%M:%S"
C T_FMT_AMPM "%I:%M:%S %p"
C ABDAY_1 Sun
C ABDAY_2 Mon
C ABDAY_3 Tue
C ABDAY_4 Wed
C ABDAY_5 Thu
C ABDAY_6 Fri
C ABDAY_7 Sat
C DAY_1 Sunday
C DAY_2 Monday
C DAY_3 Tuesday
C DAY_4 Wednesday
C DAY_5 Thursday
C DAY_6 Friday
C DAY_7 Saturday
C RADIXCHAR .
C THOUSEP ""
C YESEXPR ^[yY]
C NOEXPR ^[nN]
en_US.ANSI_X3.4-1968 ABMON_1 Jan
en_US.ANSI_X3.4-1968 ABMON_2 Feb
en_US.ANSI_X3.4-1968 ABMON_3 Mar
en_US.ANSI_X3.4-1968 ABMON_4 Apr
en_US.ANSI_X3.4-1968 ABMON_5 May
en_US.ANSI_X3.4-1968 ABMON_6 Jun
en_US.ANSI_X3.4-1968 ABMON_7 Jul
en_US.ANSI_X3.4-1968 ABMON_8 Aug
en_US.ANSI_X3.4-1968 ABMON_9 Sep
en_US.ANSI_X3.4-1968 ABMON_10 Oct
en_US.ANSI_X3.4-1968 ABMON_11 Nov
en_US.ANSI_X3.4-1968 ABMON_12 Dec
en_US.ANSI_X3.4-1968 MON_1 January
en_US.ANSI_X3.4-1968 MON_2 February
en_US.ANSI_X3.4-1968 MON_3 March
en_US.ANSI_X3.4-1968 MON_4 April
en_US.ANSI_X3.4-1968 MON_5 May
en_US.ANSI_X3.4-1968 MON_6 June
en_US.ANSI_X3.4-1968 MON_7 July
en_US.ANSI_X3.4-1968 MON_8 August
en_US.ANSI_X3.4-1968 MON_9 September
en_US.ANSI_X3.4-1968 MON_10 October
en_US.ANSI_X3.4-1968 MON_11 November
en_US.ANSI_X3.4-1968 MON_12 December
en_US.ANSI_X3.4-1968 AM_STR AM
en_US.ANSI_X3.4-1968 PM_STR PM
en_US.ANSI_X3.4-1968 D_T_FMT "%a %d %b %Y %r %Z"
en_US.ANSI_X3.4-1968 D_FMT "%m/%d/%Y"
en_US.ANSI_X3.4-1968 T_FMT "%r"
en_US.ANSI_X3.4-1968 T_FMT_AMPM "%I:%M:%S %p"
en_US.ANSI_X3.4-1968 RADIXCHAR .
en_US.ANSI_X3.4-1968 THOUSEP ,
en_US.ANSI_X3.4-1968 YESEXPR ^[yY].*
en_US.ANSI_X3.4-1968 NOEXPR ^[nN].*
en_US.ISO-8859-1 ABMON_1 Jan
en_US.ISO-8859-1 ABMON_2 Feb
en_US.ISO-8859-1 ABMON_3 Mar
en_US.ISO-8859-1 ABMON_4 Apr
en_US.ISO-8859-1 ABMON_5 May
en_US.ISO-8859-1 ABMON_6 Jun
en_US.ISO-8859-1 ABMON_7 Jul
en_US.ISO-8859-1 ABMON_8 Aug
en_US.ISO-8859-1 ABMON_9 Sep
en_US.ISO-8859-1 ABMON_10 Oct
en_US.ISO-8859-1 ABMON_11 Nov
en_US.ISO-8859-1 ABMON_12 Dec
en_US.ISO-8859-1 MON_1 January
en_US.ISO-8859-1 MON_2 February
en_US.ISO-8859-1 MON_3 March
en_US.ISO-8859-1 MON_4 April
en_US.ISO-8859-1 MON_5 May
en_US.ISO-8859-1 MON_6 June
en_US.ISO-8859-1 MON_7 July
en_US.ISO-8859-1 MON_8 August
en_US.ISO-8859-1 MON_9 September
en_US.ISO-8859-1 MON_10 October
en_US.ISO-8859-1 MON_11 November
en_US.ISO-8859-1 MON_12 December
en_US.ISO-8859-1 AM_STR AM
en_US.ISO-8859-1 PM_STR PM
en_US.ISO-8859-1 D_T_FMT "%a %d %b %Y %r %Z"
en_US.ISO-8859-1 D_FMT "%m/%d/%Y"
en_US.ISO-8859-1 T_FMT "%r"
en_US.ISO-8859-1 T_FMT_AMPM "%I:%M:%S %p"
en_US.ISO-8859-1 RADIXCHAR .
en_US.ISO-8859-1 THOUSEP ,
en_US.ISO-8859-1 YESEXPR ^[yY].*
en_US.ISO-8859-1 NOEXPR ^[nN].*
de_DE.ISO-8859-1 ABDAY_1 Son
de_DE.ISO-8859-1 ABDAY_2 Mon
de_DE.ISO-8859-1 ABDAY_3 Die
de_DE.ISO-8859-1 ABDAY_4 Mit
de_DE.ISO-8859-1 ABDAY_5 Don
de_DE.ISO-8859-1 ABDAY_6 Fre
de_DE.ISO-8859-1 ABDAY_7 Sam
de_DE.ISO-8859-1 DAY_1 Sonntag
de_DE.ISO-8859-1 DAY_2 Montag
de_DE.ISO-8859-1 DAY_3 Dienstag
de_DE.ISO-8859-1 DAY_4 Mittwoch
de_DE.ISO-8859-1 DAY_5 Donnerstag
de_DE.ISO-8859-1 DAY_6 Freitag
de_DE.ISO-8859-1 DAY_7 Samstag
de_DE.ISO-8859-1 ABMON_1 Jan
de_DE.ISO-8859-1 ABMON_2 Feb
de_DE.ISO-8859-1 ABMON_3 Mär
de_DE.ISO-8859-1 ABMON_4 Apr
de_DE.ISO-8859-1 ABMON_5 Mai
de_DE.ISO-8859-1 ABMON_6 Jun
de_DE.ISO-8859-1 ABMON_7 Jul
de_DE.ISO-8859-1 ABMON_8 Aug
de_DE.ISO-8859-1 ABMON_9 Sep
de_DE.ISO-8859-1 ABMON_10 Okt
de_DE.ISO-8859-1 ABMON_11 Nov
de_DE.ISO-8859-1 ABMON_12 Dez
de_DE.ISO-8859-1 MON_1 Januar
de_DE.ISO-8859-1 MON_2 Februar
de_DE.ISO-8859-1 MON_3 März
de_DE.ISO-8859-1 MON_4 April
de_DE.ISO-8859-1 MON_5 Mai
de_DE.ISO-8859-1 MON_6 Juni
de_DE.ISO-8859-1 MON_7 Juli
de_DE.ISO-8859-1 MON_8 August
de_DE.ISO-8859-1 MON_9 September
de_DE.ISO-8859-1 MON_10 Oktober
de_DE.ISO-8859-1 MON_11 November
de_DE.ISO-8859-1 MON_12 Dezember
de_DE.ISO-8859-1 D_T_FMT "%a %d %b %Y %T %Z"
de_DE.ISO-8859-1 D_FMT "%d.%m.%Y"
de_DE.ISO-8859-1 T_FMT "%T"
de_DE.ISO-8859-1 RADIXCHAR ,
de_DE.ISO-8859-1 THOUSEP .
de_DE.ISO-8859-1 YESEXPR ^[jJyY].*
de_DE.ISO-8859-1 NOEXPR ^[nN].*
de_DE.UTF-8 ABDAY_1 Son
de_DE.UTF-8 ABDAY_2 Mon
de_DE.UTF-8 ABDAY_3 Die
de_DE.UTF-8 ABDAY_4 Mit
de_DE.UTF-8 ABDAY_5 Don
de_DE.UTF-8 ABDAY_6 Fre
de_DE.UTF-8 ABDAY_7 Sam
de_DE.UTF-8 DAY_1 Sonntag
de_DE.UTF-8 DAY_2 Montag
de_DE.UTF-8 DAY_3 Dienstag
de_DE.UTF-8 DAY_4 Mittwoch
de_DE.UTF-8 DAY_5 Donnerstag
de_DE.UTF-8 DAY_6 Freitag
de_DE.UTF-8 DAY_7 Samstag
de_DE.UTF-8 ABMON_1 Jan
de_DE.UTF-8 ABMON_2 Feb
de_DE.UTF-8 ABMON_3 Mär
de_DE.UTF-8 ABMON_4 Apr
de_DE.UTF-8 ABMON_5 Mai
de_DE.UTF-8 ABMON_6 Jun
de_DE.UTF-8 ABMON_7 Jul
de_DE.UTF-8 ABMON_8 Aug
de_DE.UTF-8 ABMON_9 Sep
de_DE.UTF-8 ABMON_10 Okt
de_DE.UTF-8 ABMON_11 Nov
de_DE.UTF-8 ABMON_12 Dez
de_DE.UTF-8 MON_1 Januar
de_DE.UTF-8 MON_2 Februar
de_DE.UTF-8 MON_3 März
de_DE.UTF-8 MON_4 April
de_DE.UTF-8 MON_5 Mai
de_DE.UTF-8 MON_6 Juni
de_DE.UTF-8 MON_7 Juli
de_DE.UTF-8 MON_8 August
de_DE.UTF-8 MON_9 September
de_DE.UTF-8 MON_10 Oktober
de_DE.UTF-8 MON_11 November
de_DE.UTF-8 MON_12 Dezember
de_DE.UTF-8 D_T_FMT "%a %d %b %Y %T %Z"
de_DE.UTF-8 D_FMT "%d.%m.%Y"
de_DE.UTF-8 T_FMT "%T"
de_DE.UTF-8 RADIXCHAR ,
de_DE.UTF-8 THOUSEP .
de_DE.UTF-8 YESEXPR ^[jJyY].*
de_DE.UTF-8 NOEXPR ^[nN].*
ja_JP.EUC-JP ABDAY_1 Æü
ja_JP.EUC-JP ABDAY_2 ·î
ja_JP.EUC-JP ABDAY_3 ²Ð
ja_JP.EUC-JP ABDAY_4 ¿å
ja_JP.EUC-JP ABDAY_5 ÌÚ
ja_JP.EUC-JP ABDAY_6 ¶â
ja_JP.EUC-JP ABDAY_7 ÅÚ
ja_JP.EUC-JP DAY_1 ÆüÍËÆü
ja_JP.EUC-JP DAY_2 ·îÍËÆü
ja_JP.EUC-JP DAY_3 ²ÐÍËÆü
ja_JP.EUC-JP DAY_4 ¿åÍËÆü
ja_JP.EUC-JP DAY_5 ÌÚÍËÆü
ja_JP.EUC-JP DAY_6 ¶âÍËÆü
ja_JP.EUC-JP DAY_7 ÅÚÍËÆü
ja_JP.EUC-JP ABMON_1 " 1·î"
ja_JP.EUC-JP ABMON_2 " 2·î"
ja_JP.EUC-JP ABMON_3 " 3·î"
ja_JP.EUC-JP ABMON_4 " 4·î"
ja_JP.EUC-JP ABMON_5 " 5·î"
ja_JP.EUC-JP ABMON_6 " 6·î"
ja_JP.EUC-JP ABMON_7 " 7·î"
ja_JP.EUC-JP ABMON_8 " 8·î"
ja_JP.EUC-JP ABMON_9 " 9·î"
ja_JP.EUC-JP ABMON_10 "10·î"
ja_JP.EUC-JP ABMON_11 "11·î"
ja_JP.EUC-JP ABMON_12 "12·î"
ja_JP.EUC-JP MON_1 "1·î"
ja_JP.EUC-JP MON_2 "2·î"
ja_JP.EUC-JP MON_3 "3·î"
ja_JP.EUC-JP MON_4 "4·î"
ja_JP.EUC-JP MON_5 "5·î"
ja_JP.EUC-JP MON_6 "6·î"
ja_JP.EUC-JP MON_7 "7·î"
ja_JP.EUC-JP MON_8 "8·î"
ja_JP.EUC-JP MON_9 "9·î"
ja_JP.EUC-JP MON_10 "10·î"
ja_JP.EUC-JP MON_11 "11·î"
ja_JP.EUC-JP MON_12 "12·î"
ja_JP.EUC-JP T_FMT_AMPM "%p%I»þ%Mʬ%SÉÃ"
ja_JP.EUC-JP ERA_D_FMT "%EY%m·î%dÆü"
ja_JP.EUC-JP ERA_D_T_FMT "%EY%m·î%dÆü %H»þ%Mʬ%SÉÃ"
ja_JP.EUC-JP RADIXCHAR .
ja_JP.EUC-JP THOUSEP ,
ja_JP.EUC-JP YESEXPR ^[yY£ù£Ù]
ja_JP.EUC-JP NOEXPR ^[nN£î£Î]
# Is CRNCYSTR supposed to be the national or international sign?
# ja_JP.EUC-JP CRNCYSTR JPY
ja_JP.EUC-JP CODESET EUC-JP
EOF
LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \
LC_ALL=tt_TT ${run_program_prefix} \
${common_objpfx}localedata/tst-langinfo \
> ${common_objpfx}localedata/tst-langinfo.out
exit $?