xref: /freebsd/bin/sh/tests/builtins/locale1.0 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*13de33a5SJulio Merino# Note: this test depends on strerror() using locale.
2*13de33a5SJulio Merino
3*13de33a5SJulio Merinofailures=0
4*13de33a5SJulio Merino
5*13de33a5SJulio Merinocheck() {
6*13de33a5SJulio Merino	if ! eval "[ $1 ]"; then
7*13de33a5SJulio Merino		echo "Failed: $1 at $2"
8*13de33a5SJulio Merino		: $((failures += 1))
9*13de33a5SJulio Merino	fi
10*13de33a5SJulio Merino}
11*13de33a5SJulio Merino
12*13de33a5SJulio Merinounset LANG LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME LC_MESSAGES
13*13de33a5SJulio Merinounset LANGUAGE
14*13de33a5SJulio Merino
15*13de33a5SJulio Merinomsgeng="No such file or directory"
16*13de33a5SJulio Merinomsgdut="Bestand of map niet gevonden"
17*13de33a5SJulio Merino
18*13de33a5SJulio Merino# Verify C locale error message.
19*13de33a5SJulio Merinocase $(command . /var/empty/foo 2>&1) in
20*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
21*13de33a5SJulio Merino	*) ok=0 ;;
22*13de33a5SJulio Merinoesac
23*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
24*13de33a5SJulio Merino
25*13de33a5SJulio Merino# Various locale variables that should not affect the message.
26*13de33a5SJulio Merinocase $(LC_ALL=C command . /var/empty/foo 2>&1) in
27*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
28*13de33a5SJulio Merino	*) ok=0 ;;
29*13de33a5SJulio Merinoesac
30*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
31*13de33a5SJulio Merino
32*13de33a5SJulio Merinocase $(LC_ALL=C LANG=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1) in
33*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
34*13de33a5SJulio Merino	*) ok=0 ;;
35*13de33a5SJulio Merinoesac
36*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
37*13de33a5SJulio Merino
38*13de33a5SJulio Merinocase $(LC_ALL=C LC_MESSAGES=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1) in
39*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
40*13de33a5SJulio Merino	*) ok=0 ;;
41*13de33a5SJulio Merinoesac
42*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
43*13de33a5SJulio Merino
44*13de33a5SJulio Merinocase $(LC_CTYPE=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1) in
45*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
46*13de33a5SJulio Merino	*) ok=0 ;;
47*13de33a5SJulio Merinoesac
48*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
49*13de33a5SJulio Merino
50*13de33a5SJulio Merino# Verify Dutch message.
51*13de33a5SJulio Merinocase $(export LANG=nl_NL.ISO8859-1; command . /var/empty/foo 2>&1) in
52*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
53*13de33a5SJulio Merino	*) ok=0 ;;
54*13de33a5SJulio Merinoesac
55*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
56*13de33a5SJulio Merino
57*13de33a5SJulio Merinocase $(export LC_MESSAGES=nl_NL.ISO8859-1; command . /var/empty/foo 2>&1) in
58*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
59*13de33a5SJulio Merino	*) ok=0 ;;
60*13de33a5SJulio Merinoesac
61*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
62*13de33a5SJulio Merino
63*13de33a5SJulio Merinocase $(export LC_ALL=nl_NL.ISO8859-1; command . /var/empty/foo 2>&1) in
64*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
65*13de33a5SJulio Merino	*) ok=0 ;;
66*13de33a5SJulio Merinoesac
67*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
68*13de33a5SJulio Merino
69*13de33a5SJulio Merinocase $(LANG=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1) in
70*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
71*13de33a5SJulio Merino	*) ok=0 ;;
72*13de33a5SJulio Merinoesac
73*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
74*13de33a5SJulio Merino
75*13de33a5SJulio Merinocase $(LC_MESSAGES=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1) in
76*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
77*13de33a5SJulio Merino	*) ok=0 ;;
78*13de33a5SJulio Merinoesac
79*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
80*13de33a5SJulio Merino
81*13de33a5SJulio Merinocase $(LC_ALL=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1) in
82*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
83*13de33a5SJulio Merino	*) ok=0 ;;
84*13de33a5SJulio Merinoesac
85*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
86*13de33a5SJulio Merino
87*13de33a5SJulio Merino# Verify that command assignments do not set the locale persistently.
88*13de33a5SJulio Merinocase $(command . /var/empty/foo 2>&1) in
89*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
90*13de33a5SJulio Merino	*) ok=0 ;;
91*13de33a5SJulio Merinoesac
92*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
93*13de33a5SJulio Merino
94*13de33a5SJulio Merinocase $(LANG=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1; command . /var/empty/foo 2>&1) in
95*13de33a5SJulio Merino	*"$msgdut"*"$msgeng"*) ok=1 ;;
96*13de33a5SJulio Merino	*) ok=0 ;;
97*13de33a5SJulio Merinoesac
98*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
99*13de33a5SJulio Merino
100*13de33a5SJulio Merinocase $(LC_MESSAGES=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1; command . /var/empty/foo 2>&1) in
101*13de33a5SJulio Merino	*"$msgdut"*"$msgeng"*) ok=1 ;;
102*13de33a5SJulio Merino	*) ok=0 ;;
103*13de33a5SJulio Merinoesac
104*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
105*13de33a5SJulio Merino
106*13de33a5SJulio Merinocase $(LC_ALL=nl_NL.ISO8859-1 command . /var/empty/foo 2>&1; command . /var/empty/foo 2>&1) in
107*13de33a5SJulio Merino	*"$msgdut"*"$msgeng"*) ok=1 ;;
108*13de33a5SJulio Merino	*) ok=0 ;;
109*13de33a5SJulio Merinoesac
110*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
111*13de33a5SJulio Merino
112*13de33a5SJulio Merino# Check special builtin; add colon invocation to avoid depending on certain fix.
113*13de33a5SJulio Merinocase $(LC_ALL=nl_NL.ISO8859-1 . /var/empty/foo 2>&1; :) in
114*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
115*13de33a5SJulio Merino	*) ok=0 ;;
116*13de33a5SJulio Merinoesac
117*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
118*13de33a5SJulio Merino
119*13de33a5SJulio Merino# Assignments on special builtins are exported to that builtin; the export
120*13de33a5SJulio Merino# is not persistent.
121*13de33a5SJulio Merinocase $(LC_ALL=nl_NL.ISO8859-1 . /dev/null; . /var/empty/foo 2>&1) in
122*13de33a5SJulio Merino	*"$msgeng"*) ok=1 ;;
123*13de33a5SJulio Merino	*) ok=0 ;;
124*13de33a5SJulio Merinoesac
125*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
126*13de33a5SJulio Merino
127*13de33a5SJulio Merinocase $(export LC_ALL; LC_ALL=nl_NL.ISO8859-1 . /dev/null; . /var/empty/foo 2>&1) in
128*13de33a5SJulio Merino	*"$msgdut"*) ok=1 ;;
129*13de33a5SJulio Merino	*) ok=0 ;;
130*13de33a5SJulio Merinoesac
131*13de33a5SJulio Merinocheck '$ok -eq 1' $LINENO
132*13de33a5SJulio Merino
133*13de33a5SJulio Merinoexit $((failures > 0))
134