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