Imported Upstream version 0.19.7
[platform/upstream/gettext.git] / gettext-tools / tests / format-kde-kuit-2
1 #! /bin/sh
2 . "${srcdir=.}/init.sh"; path_prepend_ . ../src
3
4 # Test checking of KDE KUIT format strings.
5
6 cat <<\EOF > f-kd-invalid.po
7 #, kde-kuit-format
8 msgid "foo"
9 msgstr "<"
10 EOF
11
12 : ${MSGFMT=msgfmt}
13
14 LC_ALL=C ${MSGFMT} --check-format -o /dev/null f-kd-invalid.po 2>&1 | grep 'not a valid KDE KUIT format' > /dev/null 2>&1
15 test $? = 0 || {
16   echo "Skipping test: msgfmt was built without KDE KUIT format support"
17   exit 77
18 }
19
20 cat <<\EOF > f-kd-2.data
21 # Valid: one argument
22 msgid "<filename>%1</filename>"
23 msgstr "<filename>%1</filename>"
24 # Invalid: missing argument
25 msgid "<filename>%1</filename>"
26 msgstr "<filename>foo</filename>"
27 # Valid: change the text
28 msgid "<filename>foo</filename>"
29 msgstr "<filename>bar</filename>"
30 # Invalid: unbalanced tag
31 msgid "<filename>foo</filename>"
32 msgstr "<filename>bar"
33 # Invalid: unbalanced tag
34 msgid "<filename>foo</filename>"
35 msgstr "<filename>bar</xfilename>"
36 # Valid: replaced tag
37 msgid "<filename>foo</filename>"
38 msgstr "<foo>foo</foo>"
39 # Valid: accelerator
40 msgid "<filename>&foo</filename>"
41 msgstr "<foo>&foo</foo>"
42 # Valid: entity reference
43 msgid "<filename>foo</filename>"
44 msgstr "<foo>&amp;</foo>"
45 EOF
46
47 n=0
48 while read comment; do
49   read msgid_line
50   read msgstr_line
51   n=`expr $n + 1`
52   cat <<EOF > f-kd-2-$n.po
53 #, kde-kuit-format
54 ${msgid_line}
55 ${msgstr_line}
56 EOF
57   fail=
58   if echo "$comment" | grep 'Valid:' > /dev/null; then
59     if ${MSGFMT} --check-format -o f-kd-2-$n.mo f-kd-2-$n.po; then
60       :
61     else
62       fail=yes
63     fi
64   else
65     ${MSGFMT} --check-format -o f-kd-2-$n.mo f-kd-2-$n.po 2> /dev/null
66     if test $? = 1; then
67       :
68     else
69       fail=yes
70     fi
71   fi
72   if test -n "$fail"; then
73     echo "Format string checking error:" 1>&2
74     cat f-kd-2-$n.po 1>&2
75     exit 1
76   fi
77   rm -f f-kd-2-$n.po f-kd-2-$n.mo
78 done < f-kd-2.data
79
80 exit 0