• 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 checking of GCC internal format strings.
4
5tmpfiles=""
6trap 'rm -fr $tmpfiles' 1 2 3 15
7
8tmpfiles="$tmpfiles f-gi-2.data"
9cat <<\EOF > f-gi-2.data
10# Valid: %% doesn't count
11msgid  "abc%%def"
12msgstr "xyz"
13# Valid: %< doesn't count
14msgid  "abc%<def"
15msgstr "xyz"
16# Valid: %> doesn't count
17msgid  "abc%>def"
18msgstr "xyz"
19# Valid: %' doesn't count
20msgid  "abc%'def"
21msgstr "xyz"
22# Invalid: %m consumes err_no
23msgid  "abc%mdef"
24msgstr "xyz"
25# Invalid: %m consumes err_no
26msgid  "abc"
27msgstr "xyz%muvw"
28# Invalid: invalid msgstr
29msgid  "abc%%def"
30msgstr "xyz%"
31# Valid: same arguments
32msgid  "abc%s%Hdef"
33msgstr "xyz%s%H"
34# Valid: same arguments, with different flags
35msgid  "abc%s%Hdef"
36msgstr "xyz%qs%qH"
37# Valid: same arguments, with different widths
38msgid  "abc%.*sdef"
39msgstr "xyz%i%s"
40# Valid: same arguments but in numbered syntax
41msgid  "abc%s%ddef"
42msgstr "xyz%1$s%2$d"
43# Valid: permutation
44msgid  "abc%s%d%cdef"
45msgstr "xyz%3$c%2$d%1$s"
46# Valid: permutation with width
47msgid  "abc%c%.*sdef"
48msgstr "xyz%3$.*2$s%1$c"
49# Invalid: too few arguments
50msgid  "abc%sdef%u"
51msgstr "xyz%s"
52# Invalid: too many arguments
53msgid  "abc%udef"
54msgstr "xyz%uvw%c"
55# Valid: same numbered arguments, with different widths
56msgid  "abc%2$5s%1$4s"
57msgstr "xyz%2$4s%1$5s"
58# Invalid: missing argument
59msgid  "abc%2$sdef%1$u"
60msgstr "xyz%1$u"
61# Invalid: missing argument
62msgid  "abc%1$sdef%2$u"
63msgstr "xyz%2$u"
64# Invalid: added argument
65msgid  "abc%1$udef"
66msgstr "xyz%1$uvw%2$c"
67# Valid: type compatibility
68msgid  "abc%i"
69msgstr "xyz%d"
70# Valid: type compatibility
71msgid  "abc%o"
72msgstr "xyz%u"
73# Valid: type compatibility
74msgid  "abc%u"
75msgstr "xyz%x"
76# Invalid: type incompatibility
77msgid  "abc%c"
78msgstr "xyz%s"
79# Invalid: type incompatibility
80msgid  "abc%c"
81msgstr "xyz%i"
82# Invalid: type incompatibility
83msgid  "abc%c"
84msgstr "xyz%u"
85# Invalid: type incompatibility
86msgid  "abc%c"
87msgstr "xyz%p"
88# Invalid: type incompatibility
89msgid  "abc%c"
90msgstr "xyz%H"
91# Invalid: type incompatibility
92msgid  "abc%c"
93msgstr "xyz%D"
94# Invalid: type incompatibility
95msgid  "abc%c"
96msgstr "xyz%F"
97# Invalid: type incompatibility
98msgid  "abc%c"
99msgstr "xyz%T"
100# Invalid: type incompatibility
101msgid  "abc%c"
102msgstr "xyz%A"
103# Invalid: type incompatibility
104msgid  "abc%c"
105msgstr "xyz%C"
106# Invalid: type incompatibility
107msgid  "abc%c"
108msgstr "xyz%E"
109# Invalid: type incompatibility
110msgid  "abc%c"
111msgstr "xyz%L"
112# Invalid: type incompatibility
113msgid  "abc%c"
114msgstr "xyz%O"
115# Invalid: type incompatibility
116msgid  "abc%c"
117msgstr "xyz%P"
118# Invalid: type incompatibility
119msgid  "abc%c"
120msgstr "xyz%Q"
121# Invalid: type incompatibility
122msgid  "abc%c"
123msgstr "xyz%V"
124# Invalid: type incompatibility
125msgid  "abc%s"
126msgstr "xyz%i"
127# Invalid: type incompatibility
128msgid  "abc%s"
129msgstr "xyz%u"
130# Invalid: type incompatibility
131msgid  "abc%s"
132msgstr "xyz%p"
133# Invalid: type incompatibility
134msgid  "abc%s"
135msgstr "xyz%H"
136# Invalid: type incompatibility
137msgid  "abc%s"
138msgstr "xyz%D"
139# Invalid: type incompatibility
140msgid  "abc%s"
141msgstr "xyz%F"
142# Invalid: type incompatibility
143msgid  "abc%s"
144msgstr "xyz%T"
145# Invalid: type incompatibility
146msgid  "abc%s"
147msgstr "xyz%A"
148# Invalid: type incompatibility
149msgid  "abc%s"
150msgstr "xyz%C"
151# Invalid: type incompatibility
152msgid  "abc%s"
153msgstr "xyz%E"
154# Invalid: type incompatibility
155msgid  "abc%s"
156msgstr "xyz%L"
157# Invalid: type incompatibility
158msgid  "abc%s"
159msgstr "xyz%O"
160# Invalid: type incompatibility
161msgid  "abc%s"
162msgstr "xyz%P"
163# Invalid: type incompatibility
164msgid  "abc%s"
165msgstr "xyz%Q"
166# Invalid: type incompatibility
167msgid  "abc%s"
168msgstr "xyz%V"
169# Invalid: type incompatibility
170msgid  "abc%i"
171msgstr "xyz%u"
172# Invalid: type incompatibility
173msgid  "abc%i"
174msgstr "xyz%p"
175# Invalid: type incompatibility
176msgid  "abc%i"
177msgstr "xyz%H"
178# Invalid: type incompatibility
179msgid  "abc%i"
180msgstr "xyz%D"
181# Invalid: type incompatibility
182msgid  "abc%i"
183msgstr "xyz%F"
184# Invalid: type incompatibility
185msgid  "abc%i"
186msgstr "xyz%T"
187# Invalid: type incompatibility
188msgid  "abc%i"
189msgstr "xyz%A"
190# Invalid: type incompatibility
191msgid  "abc%i"
192msgstr "xyz%C"
193# Invalid: type incompatibility
194msgid  "abc%i"
195msgstr "xyz%E"
196# Invalid: type incompatibility
197msgid  "abc%i"
198msgstr "xyz%L"
199# Invalid: type incompatibility
200msgid  "abc%i"
201msgstr "xyz%O"
202# Invalid: type incompatibility
203msgid  "abc%i"
204msgstr "xyz%P"
205# Invalid: type incompatibility
206msgid  "abc%i"
207msgstr "xyz%Q"
208# Invalid: type incompatibility
209msgid  "abc%i"
210msgstr "xyz%V"
211# Invalid: type incompatibility
212msgid  "abc%u"
213msgstr "xyz%p"
214# Invalid: type incompatibility
215msgid  "abc%u"
216msgstr "xyz%H"
217# Invalid: type incompatibility
218msgid  "abc%u"
219msgstr "xyz%D"
220# Invalid: type incompatibility
221msgid  "abc%u"
222msgstr "xyz%F"
223# Invalid: type incompatibility
224msgid  "abc%u"
225msgstr "xyz%T"
226# Invalid: type incompatibility
227msgid  "abc%u"
228msgstr "xyz%A"
229# Invalid: type incompatibility
230msgid  "abc%u"
231msgstr "xyz%C"
232# Invalid: type incompatibility
233msgid  "abc%u"
234msgstr "xyz%E"
235# Invalid: type incompatibility
236msgid  "abc%u"
237msgstr "xyz%L"
238# Invalid: type incompatibility
239msgid  "abc%u"
240msgstr "xyz%O"
241# Invalid: type incompatibility
242msgid  "abc%u"
243msgstr "xyz%P"
244# Invalid: type incompatibility
245msgid  "abc%u"
246msgstr "xyz%Q"
247# Invalid: type incompatibility
248msgid  "abc%u"
249msgstr "xyz%V"
250# Invalid: type incompatibility
251msgid  "abc%p"
252msgstr "xyz%H"
253# Invalid: type incompatibility
254msgid  "abc%p"
255msgstr "xyz%D"
256# Invalid: type incompatibility
257msgid  "abc%p"
258msgstr "xyz%F"
259# Invalid: type incompatibility
260msgid  "abc%p"
261msgstr "xyz%T"
262# Invalid: type incompatibility
263msgid  "abc%p"
264msgstr "xyz%A"
265# Invalid: type incompatibility
266msgid  "abc%p"
267msgstr "xyz%C"
268# Invalid: type incompatibility
269msgid  "abc%p"
270msgstr "xyz%E"
271# Invalid: type incompatibility
272msgid  "abc%p"
273msgstr "xyz%L"
274# Invalid: type incompatibility
275msgid  "abc%p"
276msgstr "xyz%O"
277# Invalid: type incompatibility
278msgid  "abc%p"
279msgstr "xyz%P"
280# Invalid: type incompatibility
281msgid  "abc%p"
282msgstr "xyz%Q"
283# Invalid: type incompatibility
284msgid  "abc%p"
285msgstr "xyz%V"
286# Invalid: type incompatibility
287msgid  "abc%H"
288msgstr "xyz%D"
289# Invalid: type incompatibility
290msgid  "abc%H"
291msgstr "xyz%F"
292# Invalid: type incompatibility
293msgid  "abc%H"
294msgstr "xyz%T"
295# Invalid: type incompatibility
296msgid  "abc%H"
297msgstr "xyz%A"
298# Invalid: type incompatibility
299msgid  "abc%H"
300msgstr "xyz%C"
301# Invalid: type incompatibility
302msgid  "abc%H"
303msgstr "xyz%E"
304# Invalid: type incompatibility
305msgid  "abc%H"
306msgstr "xyz%L"
307# Invalid: type incompatibility
308msgid  "abc%H"
309msgstr "xyz%O"
310# Invalid: type incompatibility
311msgid  "abc%H"
312msgstr "xyz%P"
313# Invalid: type incompatibility
314msgid  "abc%H"
315msgstr "xyz%Q"
316# Invalid: type incompatibility
317msgid  "abc%H"
318msgstr "xyz%V"
319# Invalid: type incompatibility
320msgid  "abc%D"
321msgstr "xyz%F"
322# Invalid: type incompatibility
323msgid  "abc%D"
324msgstr "xyz%T"
325# Invalid: type incompatibility
326msgid  "abc%D"
327msgstr "xyz%A"
328# Invalid: type incompatibility
329msgid  "abc%D"
330msgstr "xyz%C"
331# Invalid: type incompatibility
332msgid  "abc%D"
333msgstr "xyz%E"
334# Invalid: type incompatibility
335msgid  "abc%D"
336msgstr "xyz%L"
337# Invalid: type incompatibility
338msgid  "abc%D"
339msgstr "xyz%O"
340# Invalid: type incompatibility
341msgid  "abc%D"
342msgstr "xyz%P"
343# Invalid: type incompatibility
344msgid  "abc%D"
345msgstr "xyz%Q"
346# Invalid: type incompatibility
347msgid  "abc%D"
348msgstr "xyz%V"
349# Invalid: type incompatibility
350msgid  "abc%F"
351msgstr "xyz%T"
352# Invalid: type incompatibility
353msgid  "abc%F"
354msgstr "xyz%A"
355# Invalid: type incompatibility
356msgid  "abc%F"
357msgstr "xyz%C"
358# Invalid: type incompatibility
359msgid  "abc%F"
360msgstr "xyz%E"
361# Invalid: type incompatibility
362msgid  "abc%F"
363msgstr "xyz%L"
364# Invalid: type incompatibility
365msgid  "abc%F"
366msgstr "xyz%O"
367# Invalid: type incompatibility
368msgid  "abc%F"
369msgstr "xyz%P"
370# Invalid: type incompatibility
371msgid  "abc%F"
372msgstr "xyz%Q"
373# Invalid: type incompatibility
374msgid  "abc%F"
375msgstr "xyz%V"
376# Invalid: type incompatibility
377msgid  "abc%T"
378msgstr "xyz%A"
379# Invalid: type incompatibility
380msgid  "abc%T"
381msgstr "xyz%C"
382# Invalid: type incompatibility
383msgid  "abc%T"
384msgstr "xyz%E"
385# Invalid: type incompatibility
386msgid  "abc%T"
387msgstr "xyz%L"
388# Invalid: type incompatibility
389msgid  "abc%T"
390msgstr "xyz%O"
391# Invalid: type incompatibility
392msgid  "abc%T"
393msgstr "xyz%P"
394# Invalid: type incompatibility
395msgid  "abc%T"
396msgstr "xyz%Q"
397# Invalid: type incompatibility
398msgid  "abc%T"
399msgstr "xyz%V"
400# Invalid: type incompatibility
401msgid  "abc%A"
402msgstr "xyz%C"
403# Invalid: type incompatibility
404msgid  "abc%A"
405msgstr "xyz%E"
406# Invalid: type incompatibility
407msgid  "abc%A"
408msgstr "xyz%L"
409# Invalid: type incompatibility
410msgid  "abc%A"
411msgstr "xyz%O"
412# Invalid: type incompatibility
413msgid  "abc%A"
414msgstr "xyz%P"
415# Invalid: type incompatibility
416msgid  "abc%A"
417msgstr "xyz%Q"
418# Invalid: type incompatibility
419msgid  "abc%A"
420msgstr "xyz%V"
421# Invalid: type incompatibility
422msgid  "abc%C"
423msgstr "xyz%E"
424# Invalid: type incompatibility
425msgid  "abc%C"
426msgstr "xyz%L"
427# Invalid: type incompatibility
428msgid  "abc%C"
429msgstr "xyz%O"
430# Invalid: type incompatibility
431msgid  "abc%C"
432msgstr "xyz%P"
433# Invalid: type incompatibility
434msgid  "abc%C"
435msgstr "xyz%Q"
436# Invalid: type incompatibility
437msgid  "abc%C"
438msgstr "xyz%V"
439# Invalid: type incompatibility
440msgid  "abc%E"
441msgstr "xyz%L"
442# Invalid: type incompatibility
443msgid  "abc%E"
444msgstr "xyz%O"
445# Invalid: type incompatibility
446msgid  "abc%E"
447msgstr "xyz%P"
448# Invalid: type incompatibility
449msgid  "abc%E"
450msgstr "xyz%Q"
451# Invalid: type incompatibility
452msgid  "abc%E"
453msgstr "xyz%V"
454# Invalid: type incompatibility
455msgid  "abc%L"
456msgstr "xyz%O"
457# Invalid: type incompatibility
458msgid  "abc%L"
459msgstr "xyz%P"
460# Invalid: type incompatibility
461msgid  "abc%L"
462msgstr "xyz%Q"
463# Invalid: type incompatibility
464msgid  "abc%L"
465msgstr "xyz%V"
466# Invalid: type incompatibility
467msgid  "abc%O"
468msgstr "xyz%P"
469# Invalid: type incompatibility
470msgid  "abc%O"
471msgstr "xyz%Q"
472# Invalid: type incompatibility
473msgid  "abc%O"
474msgstr "xyz%V"
475# Invalid: type incompatibility
476msgid  "abc%P"
477msgstr "xyz%Q"
478# Invalid: type incompatibility
479msgid  "abc%P"
480msgstr "xyz%V"
481# Invalid: type incompatibility
482msgid  "abc%Q"
483msgstr "xyz%V"
484# Invalid: type incompatibility due to size
485msgid  "abc%i"
486msgstr "xyz%li"
487# Invalid: type incompatibility due to size
488msgid  "abc%i"
489msgstr "xyz%lli"
490# Invalid: type incompatibility due to size
491msgid  "abc%i"
492msgstr "xyz%wi"
493# Invalid: type incompatibility due to size
494msgid  "abc%li"
495msgstr "xyz%lli"
496# Invalid: type incompatibility due to size
497msgid  "abc%li"
498msgstr "xyz%wi"
499# Invalid: type incompatibility due to size
500msgid  "abc%lli"
501msgstr "xyz%wi"
502# Invalid: type incompatibility for width
503msgid  "abc%.*s"
504msgstr "xyz%u%s"
505EOF
506
507: ${MSGFMT=msgfmt}
508n=0
509while read comment; do
510  read msgid_line
511  read msgstr_line
512  n=`expr $n + 1`
513  tmpfiles="$tmpfiles f-gi-2-$n.po f-gi-2-$n.mo"
514  cat <<EOF > f-gi-2-$n.po
515#, gcc-internal-format
516${msgid_line}
517${msgstr_line}
518EOF
519  fail=
520  if echo "$comment" | grep 'Valid:' > /dev/null; then
521    if ${MSGFMT} --check-format -o f-gi-2-$n.mo f-gi-2-$n.po; then
522      :
523    else
524      fail=yes
525    fi
526  else
527    ${MSGFMT} --check-format -o f-gi-2-$n.mo f-gi-2-$n.po 2> /dev/null
528    if test $? = 1; then
529      :
530    else
531      fail=yes
532    fi
533  fi
534  if test -n "$fail"; then
535    echo "Format string checking error:" 1>&2
536    cat f-gi-2-$n.po 1>&2
537    exit 1
538  fi
539  rm -f f-gi-2-$n.po f-gi-2-$n.mo
540done < f-gi-2.data
541
542rm -fr $tmpfiles
543
544exit 0
545