• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/ap/gpl/timemachine/gettext-0.17/gettext-tools/tests/
1#! /bin/sh
2
3# Test recognition of Boost format strings.
4
5tmpfiles=""
6trap 'rm -fr $tmpfiles' 1 2 3 15
7
8tmpfiles="$tmpfiles f-bo-1.data"
9cat <<\EOF > f-bo-1.data
10# Valid: no argument
11"abc%%"
12# Valid: one character argument
13"abc%c"
14# Valid: one character argument
15"abc%|c|"
16# Valid: one string argument
17"abc%s"
18# Valid: one string argument
19"abc%|s|"
20# Valid: one integer argument
21"abc%i"
22# Valid: one integer argument
23"abc%|i|"
24# Valid: one integer argument
25"abc%d"
26# Valid: one integer argument
27"abc%|d|"
28# Valid: one integer argument
29"abc%o"
30# Valid: one integer argument
31"abc%|o|"
32# Valid: one integer argument
33"abc%u"
34# Valid: one integer argument
35"abc%|u|"
36# Valid: one integer argument
37"abc%x"
38# Valid: one integer argument
39"abc%|x|"
40# Valid: one integer argument
41"abc%X"
42# Valid: one integer argument
43"abc%|X|"
44# Valid: one floating-point argument
45"abc%e"
46# Valid: one floating-point argument
47"abc%|e|"
48# Valid: one floating-point argument
49"abc%E"
50# Valid: one floating-point argument
51"abc%|E|"
52# Valid: one floating-point argument
53"abc%f"
54# Valid: one floating-point argument
55"abc%|f|"
56# Valid: one floating-point argument
57"abc%g"
58# Valid: one floating-point argument
59"abc%|g|"
60# Valid: one floating-point argument
61"abc%G"
62# Valid: one floating-point argument
63"abc%|G|"
64# Valid: one pointer argument
65"abc%p"
66# Valid: one pointer argument
67"abc%|p|"
68# Valid: no argument
69"abc%n"
70# Valid: no argument
71"abc%|n|"
72# Valid: one argument with flags
73"abc%0#g"
74# Valid: one argument with flags
75"abc%|0#g|"
76# Valid: one argument with width
77"abc%2g"
78# Valid: one argument with width
79"abc%|2g|"
80# Valid: one argument with width
81"abc%*g"
82# Valid: one argument with width
83"abc%|*g|"
84# Valid: one argument with precision
85"abc%.4g"
86# Valid: one argument with precision
87"abc%|.4g|"
88# Valid: one argument with precision
89"abc%.*g"
90# Valid: one argument with precision
91"abc%|.*g|"
92# Valid: one argument with width and precision
93"abc%14.4g"
94# Valid: one argument with width and precision
95"abc%|14.4g|"
96# Valid: one argument with width and precision
97"abc%14.*g"
98# Valid: one argument with width and precision
99"abc%|14.*g|"
100# Valid: one argument with width and precision
101"abc%*.4g"
102# Valid: one argument with width and precision
103"abc%|*.4g|"
104# Valid: one argument with width and precision
105"abc%*.*g"
106# Valid: one argument with width and precision
107"abc%|*.*g|"
108# Valid: one argument with size specifier
109"abc%hhi"
110# Valid: one argument with size specifier
111"abc%|hhi|"
112# Valid: one argument with size specifier
113"abc%hi"
114# Valid: one argument with size specifier
115"abc%|hi|"
116# Valid: one argument with size specifier
117"abc%li"
118# Valid: one argument with size specifier
119"abc%|li|"
120# Valid: one argument with size specifier
121"abc%lli"
122# Valid: one argument with size specifier
123"abc%|lli|"
124# Valid: one argument with size specifier
125"abc%Lg"
126# Valid: one argument with size specifier
127"abc%|Lg|"
128# Invalid: unknown size specifier
129"abc%qi"
130# Invalid: unknown size specifier
131"abc%|qi|"
132# Invalid: unknown size specifier
133"abc%ji"
134# Invalid: unknown size specifier
135"abc%|ji|"
136# Invalid: unknown size specifier
137"abc%zi"
138# Invalid: unknown size specifier
139"abc%|zi|"
140# Invalid: unterminated
141"abc%"
142# Invalid: unterminated
143"abc%|"
144# Invalid: unterminated
145"abc%|d"
146# Invalid: unknown format specifier
147"abc%a"
148# Invalid: unknown format specifier
149"abc%|a|"
150# Invalid: unknown format specifier
151"abc%A"
152# Invalid: unknown format specifier
153"abc%|A|"
154# Invalid: unknown format specifier
155"abc%F"
156# Invalid: unknown format specifier
157"abc%|F|"
158# Invalid: unknown format specifier
159"abc%y"
160# Invalid: unknown format specifier
161"abc%|y|"
162# Invalid: flags after width
163"abc%*0g"
164# Invalid: flags after width
165"abc%|*0g|"
166# Invalid: twice precision
167"abc%.4.2g"
168# Invalid: twice precision
169"abc%|.4.2g|"
170# Valid: three arguments
171"abc%d%u%u"
172# Valid: three arguments, mixed syntax
173"abc%|d|%u%u"
174# Valid: three arguments, mixed syntax
175"abc%d%u%|u|"
176# Valid: a numbered argument
177"abc%1$d"
178# Valid: a numbered argument
179"abc%|1$d|"
180# Valid: a numbered argument
181"abc%1%"
182# Invalid: zero
183"abc%0$d"
184# Invalid: zero
185"abc%|0$d|"
186# Invalid: zero
187"abc%0%def"
188# Valid: two-digit numbered arguments
189"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
190# Valid: two-digit numbered arguments
191"abc%|11$d|ef%|10$d|gh%|9$d|ij%|8$d|kl%|7$d|mn%|6$d|op%|5$d|qr%|4$d|st%|3$d|uv%|2$d|wx%|1$d|yz"
192# Invalid: unterminated number
193"abc%1"
194# Valid: omitted directive number
195"abc%|1|"
196# Invalid: flags before number
197"abc%+1$d"
198# Invalid: flags before number
199"abc%|+1$d|"
200# Valid: three arguments, two with same number
201"abc%1$4x,%2$c,%1$u"
202# Valid: three arguments, two with same number
203"abc%|1$4x|,%|2$c|,%|1$u|"
204# Invalid: argument with conflicting types
205"abc%1$4x,%2$c,%1$p"
206# Invalid: argument with conflicting types
207"abc%|1$4x|,%|2$c|,%|1$p|"
208# Valid: no conflict
209"abc%1$4x,%2$c,%1$s"
210# Valid: no conflict
211"abc%|1$4x|,%|2$c|,%|1$s|"
212# Valid: no conflict
213"abc%1$4x,%2$c,%1$u"
214# Valid: no conflict
215"abc%|1$4x|,%|2$c|,%|1$u|"
216# Invalid: mixing of numbered and unnumbered arguments
217"abc%d%2$x"
218# Invalid: mixing of numbered and unnumbered arguments
219"abc%|d|%|2$x|"
220# Invalid: mixing of numbered and unnumbered arguments
221"abc%|d|%2%"
222# Valid: numbered argument with constant precision
223"abc%1$.9x"
224# Valid: numbered argument with constant precision
225"abc%|1$.9x|"
226# Invalid: mixing of numbered and unnumbered arguments
227"abc%1$.*x"
228# Invalid: mixing of numbered and unnumbered arguments
229"abc%|1$.*x|"
230# Valid: missing non-final argument
231"abc%2$x%3$s"
232# Valid: missing non-final argument
233"abc%|2$x|%|3$s|"
234# Valid: missing non-final argument
235"abc%2%%3%"
236# Valid: permutation
237"abc%2$ddef%1$d"
238# Valid: permutation
239"abc%|2$d|def%|1$d|"
240# Valid: multiple uses of same argument
241"abc%2$xdef%1$pghi%2$x"
242# Valid: multiple uses of same argument
243"abc%|2$x|def%|1$p|ghi|%2$x|"
244# Valid: one argument with width
245"abc%2$#*1$g"
246# Valid: one argument with width
247"abc%|2$#*1$g|"
248# Valid: one argument with width and precision
249"abc%3$*2$.*1$g"
250# Valid: one argument with width and precision
251"abc%|3$*2$.*1$g|"
252# Invalid: zero
253"abc%2$*0$.*1$g"
254# Invalid: zero
255"abc%|2$*0$.*1$g|"
256# Valid: tab
257"abc%t"
258# Valid: tab
259"abc%9t"
260# Valid: tab
261"abc%|9t|"
262# Invalid: unterminated directive
263"abc%T"
264# Valid: tab
265"abc%T "
266# Valid: tab
267"abc%99T "
268# Invalid: unterminated directive
269"abc%|99T "
270# Invalid: unterminated directive
271"abc%|99T|"
272# Valid: tab
273"abc%|99T |"
274# Valid: tab
275"abc%|99T||"
276EOF
277
278: ${XGETTEXT=xgettext}
279n=0
280while read comment; do
281  read string
282  n=`expr $n + 1`
283  tmpfiles="$tmpfiles f-bo-1-$n.in f-bo-1-$n.po"
284  cat <<EOF > f-bo-1-$n.in
285gettext(${string});
286EOF
287  ${XGETTEXT} -L C++ --boost -o f-bo-1-$n.po f-bo-1-$n.in || exit 1
288  test -f f-bo-1-$n.po || exit 1
289  fail=
290  if echo "$comment" | grep 'Valid:' > /dev/null; then
291    if grep boost-format f-bo-1-$n.po > /dev/null; then
292      :
293    else
294      fail=yes
295    fi
296  else
297    if grep boost-format f-bo-1-$n.po > /dev/null; then
298      fail=yes
299    else
300      :
301    fi
302  fi
303  if test -n "$fail"; then
304    echo "Format string recognition error:" 1>&2
305    cat f-bo-1-$n.in 1>&2
306    echo "Got:" 1>&2
307    cat f-bo-1-$n.po 1>&2
308    exit 1
309  fi
310  rm -f f-bo-1-$n.in f-bo-1-$n.po
311done < f-bo-1.data
312
313rm -fr $tmpfiles
314
315exit 0
316