Imported Upstream version 0.19.7
[platform/upstream/gettext.git] / gettext-tools / tests / xgettext-perl-6
1 #! /bin/sh
2 . "${srcdir=.}/init.sh"; path_prepend_ . ../src
3
4 # Test whether the right number of arguments are extracted.
5
6 cat <<\EOPERL > xg-pl-6.pl
7 use strict;
8
9 # For 'gettext', xgettext needs to extract the first argument.
10
11 # Don't extract further strings (second argument to gettext or unrelated
12 # expressions).
13 print gettext "extracted1", "$shouldnotbeextracted";
14 print gettext ("extracted2"), "$shouldnotbeextracted";
15 print gettext ("extracted3")."$notextracted", "$shouldnotbeextracted";
16 print (gettext ("extracted4")), "$shouldnotbeextracted";
17
18 # Likewise, inside a call to an arbitrary 'foobar' function.
19 print foobar gettext "extracted5", "$shouldnotbeextracted";
20 print foobar gettext ("extracted6"), "$shouldnotbeextracted";
21 print foobar gettext ("extracted7")."$notextracted", "$shouldnotbeextracted";
22 print foobar (gettext ("extracted8")), "$shouldnotbeextracted";
23 print foobar (gettext "extracted9", "$shouldnotbeextracted");
24 print foobar (gettext ("extracted10"), "$shouldnotbeextracted");
25 print foobar (gettext ("extracted11")."$notextracted", "$shouldnotbeextracted");
26
27 # Don't extract strings that are inside a function call to an arbitrary
28 # 'foobar' function, and don't extract a second argument to gettext
29 print gettext foobar "$notextracted", "$shouldnotbeextracted";
30 print gettext foobar ("$notextracted"), "$shouldnotbeextracted";
31 print gettext foobar ("$notextracted")."$notextracted", "$shouldnotbeextracted";
32 print (gettext foobar ("$notextracted")), "$shouldnotbeextracted";
33 print gettext (foobar "$notextracted"), "$shouldnotbeextracted";
34 print gettext (foobar ("$notextracted")), "$shouldnotbeextracted";
35 print gettext (foobar ("$notextracted"))."$notextracted", "$shouldnotbeextracted";
36 print gettext (foobar ("$notextracted")."$notextracted"), "$shouldnotbeextracted";
37 print (gettext (foobar ("$notextracted"))), "$shouldnotbeextracted";
38
39 # For 'dgettext', xgettext needs to extract the second argument.
40
41 # The first argument should not be extracted.
42 print dgettext "$shouldnotbeextracted", "extracted12";
43
44 # For a built-in unary function with parentheses, it's clear where dgettext's
45 # first argument ends.
46 print dgettext sin (17), "extracted13";
47
48 # For a built-in unary function, it's clear where dgettext's first argument
49 # ends.
50 print dgettext sin 17, "extracted14";
51
52 # For a function call with parentheses, it's clear where dgettext's first
53 # argument ends.
54 print dgettext foo (17), "extracted15";
55
56 # This one is hairy. If foo is a function with a prototype and one argument,
57 # this parses like
58 #   print dgettext (foo (17), "extracted16");
59 # otherwise it parses like
60 #   print dgettext (foo (17, "extracted16"));
61 # But in the latter case dgettext has no second argument at all; this is
62 # therefore not the interpretation intended by the programmer.
63 print dgettext foo 17, "extracted16";
64 EOPERL
65
66 : ${XGETTEXT=xgettext}
67 LC_MESSAGES=C LC_ALL= \
68 ${XGETTEXT} --omit-header --no-location -o xg-pl-6.tmp xg-pl-6.pl || exit 1
69 LC_ALL=C tr -d '\r' < xg-pl-6.tmp > xg-pl-6.pot || exit 1
70
71 cat <<\EOF > xg-pl-6.ok
72 msgid "extracted1"
73 msgstr ""
74
75 msgid "extracted2"
76 msgstr ""
77
78 msgid "extracted3"
79 msgstr ""
80
81 msgid "extracted4"
82 msgstr ""
83
84 msgid "extracted5"
85 msgstr ""
86
87 msgid "extracted6"
88 msgstr ""
89
90 msgid "extracted7"
91 msgstr ""
92
93 msgid "extracted8"
94 msgstr ""
95
96 msgid "extracted9"
97 msgstr ""
98
99 msgid "extracted10"
100 msgstr ""
101
102 msgid "extracted11"
103 msgstr ""
104
105 msgid "extracted12"
106 msgstr ""
107
108 msgid "extracted13"
109 msgstr ""
110
111 msgid "extracted14"
112 msgstr ""
113
114 msgid "extracted15"
115 msgstr ""
116
117 msgid "extracted16"
118 msgstr ""
119 EOF
120
121 : ${DIFF=diff}
122 ${DIFF} xg-pl-6.ok xg-pl-6.pot
123 result=$?
124
125 exit $result