transmission: upgrade 2.31 to 2.32
[tomato.git] / release / src / router / gettext / gettext-tools / tests / format-scheme-1
blob753ddf0ee8b8e6e82ff5eb2730102363b7548164
1 #! /bin/sh
3 # Test recognition of Scheme format strings.
5 tmpfiles=""
6 trap 'rm -fr $tmpfiles' 1 2 3 15
8 tmpfiles="$tmpfiles f-sc-1.data"
9 cat <<\EOF > f-sc-1.data
10 # Valid: no argument, ( | . *)
11 "abc~~def"
12 # Valid: one argument, (* | . *)
13 "abc~Sdef"
14 # Valid: 11 arguments, (* * * * * * * * * * * | . *)
15 "abc~10@*~Sdef"
16 # Invalid: unterminated
17 "abc~~def~"
18 # Invalid: unterminated
19 "abc~~def~1"
20 # Invalid: unterminated
21 "abc~~def~:"
22 # Invalid: unterminated
23 "abc~~def~@"
24 # Valid: colon
25 "abc~:Sdef"
26 # Valid: atsign
27 "abc~@Sdef"
28 # Valid: colon and atsign
29 "abc~:@Sdef"
30 # Valid: atsign and colon
31 "abc~@:Sdef"
32 # Valid: params before atsign and colon
33 "abc~3,-4,,'*@:Sdef"
34 # Invalid: params after atsign and colon
35 "abc~@:3,-4Sdef"
36 # Invalid: params after atsign and colon
37 "abc~@:-4Sdef"
38 # Invalid: params after atsign and colon
39 "abc~@:,-4Sdef"
40 # Valid: V and # params, (i() * | . *)
41 "abc~#,vSdef"
42 # Invalid: wrong type params
43 "abc~,'*Sdef"
44 # Valid: FORMAT-ASCII, (i() i() i() c() * | . *)
45 "abc~v,v,v,vA"
46 # Invalid: too many params
47 "abc~v,v,v,v,5A"
48 # Valid: FORMAT-S-EXPRESSION, (i() i() i() c() * | . *)
49 "abc~v,v,v,vS"
50 # Invalid: too many params
51 "abc~v,v,v,v,5S"
52 # Valid: FORMAT-PRETTY, (* | . *)
53 "abc~Y"
54 # Invalid: too many params
55 "abc~3Y"
56 # Valid: FORMAT-DECIMAL, (i() c() c() i() i | . *)
57 "abc~v,v,v,vD"
58 # Invalid: too many params
59 "abc~v,v,v,v,5D"
60 # Valid: FORMAT-BINARY, (i() c() c() i() i | . *)
61 "abc~v,v,v,vB"
62 # Invalid: too many params
63 "abc~v,v,v,v,5B"
64 # Valid: FORMAT-OCTAL, (i() c() c() i() i | . *)
65 "abc~v,v,v,vO"
66 # Invalid: too many params
67 "abc~v,v,v,v,5O"
68 # Valid: FORMAT-HEXADECIMAL, (i() c() c() i() i | . *)
69 "abc~v,v,v,vX"
70 # Invalid: too many params
71 "abc~v,v,v,v,5X"
72 # Valid: FORMAT-RADIX, (i() i() c() c() i() i | . *)
73 "abc~v,v,v,v,vR"
74 # Invalid: too many params
75 "abc~v,v,v,v,v,5R"
76 # Valid: FORMAT-PLURAL, (* | . *)
77 "abc~P"
78 # Valid: FORMAT-PLURAL, (i | . *)
79 "abc~R egg~:P"
80 # Invalid: too many params
81 "abc~2P"
82 # Valid: FORMAT-CHARACTER, (c | . *)
83 "abc~C"
84 # Valid: FORMAT-CHARACTER, ( | . *)
85 "abc~4C"
86 # Invalid: too many params
87 "abc~4,4C"
88 # Valid: FORMAT-FIXED-FLOAT, (i() i() i() c() c() r | . *)
89 "abc~v,v,v,v,vF"
90 # Invalid: too many params
91 "abc~v,v,v,v,v,5F"
92 # Valid: FORMAT-EXPONENTIAL-FLOAT, (i() i() i() i() c() c() c() r | . *)
93 "abc~v,v,v,v,v,v,vE"
94 # Invalid: too many params
95 "abc~v,v,v,v,v,v,v,5E"
96 # Valid: FORMAT-GENERAL-FLOAT, (i() i() i() i() c() c() c() r | . *)
97 "abc~v,v,v,v,v,v,vG"
98 # Invalid: too many params
99 "abc~v,v,v,v,v,v,v,5G"
100 # Valid: FORMAT-DOLLARS-FLOAT, (i() i() i() c() r | . *)
101 "abc~v,v,v,v$"
102 # Invalid: too many params
103 "abc~v,v,v,v,5$"
104 # Valid: FORMAT-FIXED-FLOAT-COMPLEX, (C | .*)
105 "abc~I"
106 # Valid: FORMAT-TERPRI, (i() | . *)
107 "abc~v%"
108 # Invalid: too many params
109 "abc~v,5%"
110 # Valid: FORMAT-FRESH-LINE, (i() | . *)
111 "abc~v&"
112 # Invalid: too many params
113 "abc~v,5&"
114 # Valid: FORMAT-SPACE, (i() | . *)
115 "abc~v_"
116 # Invalid: too many params
117 "abc~v,5_"
118 # Valid: FORMAT-TAB, (i() | . *)
119 "abc~v/"
120 # Invalid: too many params
121 "abc~v,5/"
122 # Valid: FORMAT-PAGE, (i() | . *)
123 "abc~v|"
124 # Invalid: too many params
125 "abc~v,5|"
126 # Valid: FORMAT-TILDE, (i() | . *)
127 "abc~v~"
128 # Invalid: too many params
129 "abc~v,5~"
130 # Valid: FORMAT-FORCE-OUTPUT, ( | . *)
131 "abc~!"
132 # Invalid: too many params
133 "abc~5!"
134 # Valid: FORMAT-IMPLEMENTATION, ( | . *)
135 "abc~Q"
136 # Invalid: too many params
137 "abc~5Q"
138 # Valid: FORMAT-TABULATE, (i() i() c() | . *)
139 "abc~v,v,vT"
140 # Invalid: too many params
141 "abc~v,v,v,5T"
142 # Valid: FORMAT-GOTO absolute, (* r c | . *)
143 "abc~S~F~S~2@*~C"
144 # Invalid: type incompatibility
145 "abc~S~F~S~1@*~C"
146 # Valid: FORMAT-GOTO backward, (* c r | . *)
147 "abc~S~S~F~2:*~C"
148 # Invalid: type incompatibility
149 "abc~S~S~F~1:*~C"
150 # Invalid: too many params
151 "abc~v,4*"
152 # Valid: FORMAT-GOTO with large number
153 "abc~S~F~S~1000000@*~C"
154 # Valid: FORMAT-INDIRECTION, (~ ( | . *) | . *)
155 "abc~?"
156 # Valid: FORMAT-INDIRECTION, (~ | . *)
157 "abc~@?"
158 # Invalid: too many params
159 "abc~4?"
160 # Valid: FORMAT-INDIRECTION, (~ ( | . *) | . *)
161 "abc~K"
162 # Valid: FORMAT-INDIRECTION, (~ | . *)
163 "abc~@K"
164 # Invalid: too many params
165 "abc~4K"
166 # Valid: FORMAT-CASE-CONVERSION, (* | . *)
167 "abc~(~S~)"
168 # Invalid: too many params
169 "abc~4(~S~)"
170 # Invalid: too many params
171 "abc~(~S~4)"
172 # Invalid: unterminated
173 "abc~(~S"
174 # Invalid: separator
175 "abc~(~S~;~S~)"
176 # Valid: FORMAT-CONDITIONAL, (i() c | . *)
177 "abc~@[~D~]~C"
178 # Valid: FORMAT-CONDITIONAL, (i() | . *)
179 "abc~@[~D~D~]~C"
180 # Invalid: separator
181 "abc~@[~D~;~D~]~C"
182 # Valid: FORMAT-CONDITIONAL, (* i c | . *)
183 "abc~:[~X~;~D~]~C"
184 # Invalid: missing separator
185 "abc~:[~D~]~C"
186 # Invalid: too many separators
187 "abc~:[~X~;~D~;~E~]~C"
188 # Valid: FORMAT-CONDITIONAL, (* | . *)
189 "abc~[~D~;~X~]~C"
190 # Valid: FORMAT-CONDITIONAL, (* i c | . *)
191 "abc~[~D~;~X~:;~R~]~C"
192 # Invalid: default clause not last
193 "abc~[~D~;~X~:;~R~;~R~]~C"
194 # Invalid: too many params
195 "abc~4@[~D~]"
196 # Invalid: too many params
197 "abc~@[~D~4]"
198 # Invalid: too many params
199 "abc~4:[~D~;~X~]"
200 # Invalid: too many params
201 "abc~:[~D~4;~X~]"
202 # Invalid: too many params
203 "abc~:[~D~;~X~4]"
204 # Valid: FORMAT-CONDITIONAL, one param, without colon or atsign
205 "abc~4[~D~;~X~]"
206 # Invalid: too many params
207 "abc~4,4[~D~;~X~]"
208 # Invalid: too many params
209 "abc~[~D~4;~X~]"
210 # Invalid: too many params
211 "abc~[~D~;~X~4]"
212 # Valid: FORMAT-ITERATION, (( | . *) | . *)
213 "abc~{~~~}"
214 # Valid: FORMAT-ITERATION, (( | . ( | . *)) | . *)
215 "abc~:{~~~}"
216 # Valid: FORMAT-ITERATION, ( | . *)
217 "abc~@{~~~}"
218 # Valid: FORMAT-ITERATION, ( | . ( | . *))
219 "abc~:@{~~~}"
220 # Valid: FORMAT-ITERATION with indirection, (~ ( | . *) | . *)
221 "abc~{~}"
222 # Valid: FORMAT-ITERATION with indirection, (~ ( | . ( | . *)) | . *)
223 "abc~:{~}"
224 # Valid: FORMAT-ITERATION with indirection, (~ | . *)
225 "abc~@{~}"
226 # Valid: FORMAT-ITERATION with indirection, (~ | . ( | . *))
227 "abc~:@{~}"
228 # Valid: FORMAT-ITERATION with loop, (( | . i c) | . *)
229 "abc~{~D ~C~}"
230 # Valid: FORMAT-ITERATION with loop, (( | . (i c | . *)) | . *)
231 "abc~:{~D ~C~}"
232 # Valid: FORMAT-ITERATION with loop, ( | . i c)
233 "abc~@{~D ~C~}"
234 # Valid: FORMAT-ITERATION with loop, ( | . (i c | . *))
235 "abc~:@{~D ~C~}"
236 # Valid: FORMAT-ITERATION with variable-advance loop, (( | . *) | . *)
237 "abc~{~[~D~]~}"
238 # Valid: FORMAT-ITERATION with variable-advance loop, (( | . (* | . *)) | . *)
239 "abc~:{~[~D~]~}"
240 # Valid: FORMAT-ITERATION with variable-advance loop, ( | . *)
241 "abc~@{~[~D~]~}"
242 # Valid: FORMAT-ITERATION with variable-advance loop, ( | . (* | . *))
243 "abc~:@{~[~D~]~}"
244 # Invalid: separator
245 "abc~{~D~;~C~}"
246 # Invalid: wrongly nested
247 "abc~{~(~}~)"
248 # Valid: any number of arguments
249 "abc~v,v,v,v,v!"
250 # Invalid: type incompatibility between integer and list
251 "abc~D~:*~{~D~}"
252 # Invalid: type incompatibility between real and list
253 "abc~{~S~}~:*~F"
254 # Valid: list must be empty
255 "abc~{~C~}~:*~{~D~}"
258 : ${XGETTEXT=xgettext}
260 while read comment; do
261 read string
262 n=`expr $n + 1`
263 tmpfiles="$tmpfiles f-sc-1-$n.in f-sc-1-$n.po"
264 cat <<EOF > f-sc-1-$n.in
265 (gettext ${string})
267 ${XGETTEXT} -L Scheme -o f-sc-1-$n.po f-sc-1-$n.in || exit 1
268 test -f f-sc-1-$n.po || exit 1
269 fail=
270 if echo "$comment" | grep 'Valid:' > /dev/null; then
271 if grep scheme-format f-sc-1-$n.po > /dev/null; then
273 else
274 fail=yes
276 else
277 if grep scheme-format f-sc-1-$n.po > /dev/null; then
278 fail=yes
279 else
283 if test -n "$fail"; then
284 echo "Format string recognition error:" 1>&2
285 cat f-sc-1-$n.in 1>&2
286 echo "Got:" 1>&2
287 cat f-sc-1-$n.po 1>&2
288 exit 1
290 rm -f f-sc-1-$n.in f-sc-1-$n.po
291 done < f-sc-1.data
293 rm -fr $tmpfiles
295 exit 0