glibc/localedata/tst-langinfo.sh
Carlos O'Donell 34fdb893e0 locale: XFAIL newlocale usage in static binary (Bug 23164)
There is a glibc optimization which allows for locale categories
to be removed during static compilation. There have been various
bugs for this support over the years, with bug 16915 being the
most recent. The solution there was to emit a reference to all the
categories to avoid any being removed. This fix, although it's in
the generic __nl_langinfo_l function, doesn't appear to be enough
to fix the case for a statically linked program that uses newlocale
and nl_langinfo_l. This commit doesn't fix the problem, but it does
add a XFAIL'd test case such that a fix can be applied against this
and the XFAIL removed. It's not entirely clear that the problem is
the same as that which was seen in bug 16915.
2018-07-04 15:23:50 -04:00

353 lines
13 KiB
Bash
Executable File
Raw Blame History

#!/bin/sh
# Test nl_langinfo.
# Copyright (C) 2000-2018 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 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/>.
set -e
common_objpfx=$1
tst_langinfo_before_env=$2
run_program_env=$3
tst_langinfo_after_env=$4
# 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 ^[+1yY]
en_US.ANSI_X3.4-1968 NOEXPR ^[-0nN]
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 ^[+1yY]
en_US.ISO-8859-1 NOEXPR ^[-0nN]
en_US.UTF-8 CURRENCY_SYMBOL $
de_DE.ISO-8859-1 ABDAY_1 So
de_DE.ISO-8859-1 ABDAY_2 Mo
de_DE.ISO-8859-1 ABDAY_3 Di
de_DE.ISO-8859-1 ABDAY_4 Mi
de_DE.ISO-8859-1 ABDAY_5 Do
de_DE.ISO-8859-1 ABDAY_6 Fr
de_DE.ISO-8859-1 ABDAY_7 Sa
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 ^[+1jJyY]
de_DE.ISO-8859-1 NOEXPR ^[-0nN]
de_DE.UTF-8 ABDAY_1 So
de_DE.UTF-8 ABDAY_2 Mo
de_DE.UTF-8 ABDAY_3 Di
de_DE.UTF-8 ABDAY_4 Mi
de_DE.UTF-8 ABDAY_5 Do
de_DE.UTF-8 ABDAY_6 Fr
de_DE.UTF-8 ABDAY_7 Sa
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 ^[+1jJyY]
de_DE.UTF-8 NOEXPR ^[-0nN]
de_DE.UTF-8 CURRENCY_SYMBOL €
fr_FR.ISO-8859-1 ABDAY_1 dim.
fr_FR.ISO-8859-1 ABDAY_2 lun.
fr_FR.ISO-8859-1 ABDAY_3 mar.
fr_FR.ISO-8859-1 ABDAY_4 mer.
fr_FR.ISO-8859-1 ABDAY_5 jeu.
fr_FR.ISO-8859-1 ABDAY_6 ven.
fr_FR.ISO-8859-1 ABDAY_7 sam.
fr_FR.ISO-8859-1 DAY_1 dimanche
fr_FR.ISO-8859-1 DAY_2 lundi
fr_FR.ISO-8859-1 DAY_3 mardi
fr_FR.ISO-8859-1 DAY_4 mercredi
fr_FR.ISO-8859-1 DAY_5 jeudi
fr_FR.ISO-8859-1 DAY_6 vendredi
fr_FR.ISO-8859-1 DAY_7 samedi
fr_FR.ISO-8859-1 ABMON_1 janv.
fr_FR.ISO-8859-1 ABMON_2 f<>vr.
fr_FR.ISO-8859-1 ABMON_3 mars
fr_FR.ISO-8859-1 ABMON_4 avril
fr_FR.ISO-8859-1 ABMON_5 mai
fr_FR.ISO-8859-1 ABMON_6 juin
fr_FR.ISO-8859-1 ABMON_7 juil.
fr_FR.ISO-8859-1 ABMON_8 ao<61>t
fr_FR.ISO-8859-1 ABMON_9 sept.
fr_FR.ISO-8859-1 ABMON_10 oct.
fr_FR.ISO-8859-1 ABMON_11 nov.
fr_FR.ISO-8859-1 ABMON_12 d<>c.
fr_FR.ISO-8859-1 MON_1 janvier
fr_FR.ISO-8859-1 MON_2 f<>vrier
fr_FR.ISO-8859-1 MON_3 mars
fr_FR.ISO-8859-1 MON_4 avril
fr_FR.ISO-8859-1 MON_5 mai
fr_FR.ISO-8859-1 MON_6 juin
fr_FR.ISO-8859-1 MON_7 juillet
fr_FR.ISO-8859-1 MON_8 ao<61>t
fr_FR.ISO-8859-1 MON_9 septembre
fr_FR.ISO-8859-1 MON_10 octobre
fr_FR.ISO-8859-1 MON_11 novembre
fr_FR.ISO-8859-1 MON_12 d<>cembre
fr_FR.ISO-8859-1 D_T_FMT "%a %d %b %Y %T %Z"
fr_FR.ISO-8859-1 D_FMT "%d/%m/%Y"
fr_FR.ISO-8859-1 T_FMT "%T"
fr_FR.ISO-8859-1 RADIXCHAR ,
fr_FR.ISO-8859-1 THOUSEP "<22>"
fr_FR.ISO-8859-1 YESEXPR ^[+1oOyY]
fr_FR.ISO-8859-1 NOEXPR ^[-0nN]
fr_FR.UTF-8 CURRENCY_SYMBOL €
ja_JP.EUC-JP ABDAY_1 <20><>
ja_JP.EUC-JP ABDAY_2 <20><>
ja_JP.EUC-JP ABDAY_3 <20><>
ja_JP.EUC-JP ABDAY_4 <20><>
ja_JP.EUC-JP ABDAY_5 <20><>
ja_JP.EUC-JP ABDAY_6 <20><>
ja_JP.EUC-JP ABDAY_7 <20><>
ja_JP.EUC-JP DAY_1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP DAY_2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP DAY_3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP DAY_4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP DAY_5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP DAY_6 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP DAY_7 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ja_JP.EUC-JP ABMON_1 " 1<><31>"
ja_JP.EUC-JP ABMON_2 " 2<><32>"
ja_JP.EUC-JP ABMON_3 " 3<><33>"
ja_JP.EUC-JP ABMON_4 " 4<><34>"
ja_JP.EUC-JP ABMON_5 " 5<><35>"
ja_JP.EUC-JP ABMON_6 " 6<><36>"
ja_JP.EUC-JP ABMON_7 " 7<><37>"
ja_JP.EUC-JP ABMON_8 " 8<><38>"
ja_JP.EUC-JP ABMON_9 " 9<><39>"
ja_JP.EUC-JP ABMON_10 "10<31><30>"
ja_JP.EUC-JP ABMON_11 "11<31><31>"
ja_JP.EUC-JP ABMON_12 "12<31><32>"
ja_JP.EUC-JP MON_1 "1<><31>"
ja_JP.EUC-JP MON_2 "2<><32>"
ja_JP.EUC-JP MON_3 "3<><33>"
ja_JP.EUC-JP MON_4 "4<><34>"
ja_JP.EUC-JP MON_5 "5<><35>"
ja_JP.EUC-JP MON_6 "6<><36>"
ja_JP.EUC-JP MON_7 "7<><37>"
ja_JP.EUC-JP MON_8 "8<><38>"
ja_JP.EUC-JP MON_9 "9<><39>"
ja_JP.EUC-JP MON_10 "10<31><30>"
ja_JP.EUC-JP MON_11 "11<31><31>"
ja_JP.EUC-JP MON_12 "12<31><32>"
ja_JP.EUC-JP T_FMT_AMPM "%p%I<><49>%Mʬ%S<><53>"
ja_JP.EUC-JP ERA_D_FMT "%EY%m<><6D>%d<><64>"
ja_JP.EUC-JP ERA_D_T_FMT "%EY%m<><6D>%d<><64> %H<><48>%Mʬ%S<><53>"
ja_JP.EUC-JP RADIXCHAR .
ja_JP.EUC-JP THOUSEP ,
ja_JP.EUC-JP YESEXPR ^([+1yY<79><59><EFBFBD><EFBFBD>]|<EFBFBD>Ϥ<EFBFBD>|<EFBFBD>ϥ<EFBFBD>)
ja_JP.EUC-JP NOEXPR ^([-0nN<6E><4E><EFBFBD><EFBFBD>]|<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
# Is CRNCYSTR supposed to be the national or international sign?
# ja_JP.EUC-JP CRNCYSTR JPY
ja_JP.EUC-JP CODESET EUC-JP
ja_JP.UTF-8 CURRENCY_SYMBOL ¥
EOF
${tst_langinfo_before_env} \
${run_program_env} \
LC_ALL=tt_TT ${tst_langinfo_after_env}
exit $?