Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / gettext-tools / tests / format-java-1
1 #! /bin/sh
2
3 # Test recognition of Java format strings.
4
5 tmpfiles=""
6 trap 'rm -fr $tmpfiles' 1 2 3 15
7
8 tmpfiles="$tmpfiles f-j-1.data"
9 cat <<\EOF > f-j-1.data
10 # Valid: one argument
11 "abc{0}def"
12 # Valid: ten arguments
13 "abc{9}def"
14 # Valid: two-digit argument numbers
15 "abc{00}def"
16 # Valid: huge argument numbers
17 "abc{500000000}def"
18 # Invalid: unterminated
19 "abc{"
20 # Invalid: unterminated
21 "abc{0"
22 # Invalid: missing number
23 "abc{}def"
24 # Invalid: non-digit
25 "abc{number}def"
26 # Invalid: non-digit
27 "abc{-0}def"
28 # Valid: two arguments
29 "abc{1}def{0}"
30 # Valid: multiple uses of same argument
31 "abc{1}def{0}ghi{1}"
32 # Invalid: broken elementFormat
33 "abc{0,}def"
34 # Invalid: invalid elementFormat
35 "abc{1,string}def"
36 # Valid: elementFormat of length 1
37 "abc{1,number}def"
38 # Valid: elementFormat of length 1
39 "abc{1,date}def"
40 # Valid: elementFormat of length 1
41 "abc{1,time}def"
42 # Valid: elementFormat of length 1
43 "abc{1,choice}def"
44 # Invalid: broken elementFormat
45 "abc{1,number,}def"
46 # Valid: builtin numberStyle
47 "abc{1,number,currency}def"
48 # Valid: builtin numberStyle
49 "abc{1,number,percent}def"
50 # Valid: builtin numberStyle
51 "abc{1,number,integer}def"
52 # Valid: builtin datetimeStyle
53 "abc{1,date,short}def"
54 # Valid: builtin datetimeStyle
55 "abc{1,date,medium}def"
56 # Valid: builtin datetimeStyle
57 "abc{1,date,long}def"
58 # Valid: builtin datetimeStyle
59 "abc{1,date,full}def"
60 # Valid: builtin datetimeStyle
61 "abc{1,time,short}def"
62 # Valid: builtin datetimeStyle
63 "abc{1,time,medium}def"
64 # Valid: builtin datetimeStyle
65 "abc{1,time,long}def"
66 # Valid: builtin datetimeStyle
67 "abc{1,time,full}def"
68 # Valid: dateFormatPattern
69 "abc{1,date,foobar}"
70 # Valid: dateFormatPattern
71 "abc{1,time,foobar}"
72 # Valid: dateFormatPattern with comma
73 "abc{1,date,foo,bar}"
74 # Valid: numberFormatPattern
75 "abc{1,number,###,##0}def"
76 # Invalid: numberFormatPattern
77 "abc{1,number,foobar}"
78 # Valid: empty choiceFormatPattern
79 "abc{1,choice,}def"
80 # Valid: choiceFormatPattern
81 "abc{1,choice,0#zero|1#one|2#many}def"
82 # Invalid: empty clause in choiceFormatPattern
83 "abc{1,choice,|0#zero|1#one|2#many}def"
84 # Valid: empty clause at end of choiceFormatPattern
85 "abc{1,choice,0#zero|1#one|2#many|}def"
86 # Invalid: short clause in choiceFormatPattern
87 "abc{1,choice,-1|0#zero|1#one|2#many}def"
88 # Valid: short clause at end of choiceFormatPattern
89 "abc{1,choice,0#zero|1#one|2#many|3}def"
90 # Valid: choiceFormatPattern with different argument
91 "abc{1,choice,1#one|2#{0,date}}def"
92 # Valid: choiceFormatPattern with same argument
93 "abc{1,choice,1#one|2#{1}}def"
94 # Valid: choiceFormatPattern with same argument
95 "abc{1,choice,1#one|2#{1,number}}def"
96 # Invalid: choiceFormatPattern with same argument, type conflict
97 "abc{1,choice,1#one|2#{1,date}}def"
98 # Invalid: missing opening brace
99 "abc1}def{0}"
100 # Valid: quoted brace
101 "abc1'}'def{0}"
102 # Invalid: quoted brace
103 "abc{1'}'def"
104 # Valid: unterminated quote
105 "abc{0}1'}"
106 # Valid: quoted brace, '' counts as a single quote
107 "abc''1'}'def{0}"
108 # Invalid: '' counts as a single quote
109 "abc{1''}def"
110 # Valid: quote inside elementFormat is hidden
111 "abc{1,date,x'y}def"
112 # Valid: numberFormatPattern with quote
113 "abc{1,number,#0';'}def"
114 # Invalid: numberFormatPattern with wrong number syntax
115 "abc{1,number,#0;}def"
116 # Valid: numberFormatPattern with quote
117 "abc{1,number,0.##'E}def"
118 # Valid: numberFormatPattern without quote
119 "abc{1,number,0.##E}def"
120 EOF
121
122 : ${XGETTEXT=xgettext}
123 n=0
124 while read comment; do
125   read string
126   n=`expr $n + 1`
127   tmpfiles="$tmpfiles f-j-1-$n.in f-j-1-$n.po"
128   cat <<EOF > f-j-1-$n.in
129 gettext(${string});
130 EOF
131   ${XGETTEXT} -L Java -o f-j-1-$n.po f-j-1-$n.in || exit 1
132   test -f f-j-1-$n.po || exit 1
133   fail=
134   if echo "$comment" | grep 'Valid:' > /dev/null; then
135     if grep java-format f-j-1-$n.po > /dev/null; then
136       :
137     else
138       fail=yes
139     fi
140   else
141     if grep java-format f-j-1-$n.po > /dev/null; then
142       fail=yes
143     else
144       :
145     fi
146   fi
147   if test -n "$fail"; then
148     echo "Format string recognition error:" 1>&2
149     cat f-j-1-$n.in 1>&2
150     echo "Got:" 1>&2
151     cat f-j-1-$n.po 1>&2
152     exit 1
153   fi
154   rm -f f-j-1-$n.in f-j-1-$n.po
155 done < f-j-1.data
156
157 rm -fr $tmpfiles
158
159 exit 0