Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / gettext-tools / tests / msgfmt-2
1 #! /bin/sh
2
3 # Test basic functionality, duplicate detection, multiple domains.
4
5 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
6   # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
7   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
8     ac_n= ac_c='
9 ' ac_t='        '
10   else
11     ac_n=-n ac_c= ac_t=
12   fi
13 else
14   ac_n= ac_c='\c' ac_t=
15 fi
16
17 tmpfiles=""
18 trap 'rm -fr $tmpfiles' 1 2 3 15
19
20 tmpfiles="$tmpfiles LC_MESSAGES"
21 test -d LC_MESSAGES || mkdir LC_MESSAGES
22
23 tmpfiles="$tmpfiles module1.po module2.po"
24 cat <<EOF > module1.po
25 #default domain "messages.mo"
26 msgid   "SYS_(C)\n"
27 msgstr "MSGFMT(3) portable message object file compiler\n"
28 "Copyright (C) 1995 Free Software Foundation\n"
29 "Report bugs to <bug-gnu-utils@gnu.org>\n"
30 msgid   "msg 1"
31 msgstr  "msg 1 translation"
32 #
33 domain  "help_dom"
34 msgid   "help 2 %d"
35 msgstr  "help 2 translation"
36 #
37 domain  "error_dom"
38 msgid   "error 3"
39 msgstr  "error 3 translation"
40 EOF
41
42 cat <<EOF > module2.po
43 # ---
44 #default domain "messages.mo"
45 msgid   "mesg 4"
46 msgstr  "mesg 4 translation"
47 #
48 domain  "error_dom"
49 msgid   "error 3"
50 msgstr  "alternate error 3 translation"
51 msgid   "error 5"
52 msgstr  "error 5 translation"
53 #
54 domain  "window_dom"
55 msgid   "window 6"
56 msgstr  "window 6 translation"
57 EOF
58
59 # Without use of msgcat, expect a "duplicate message definition" error.
60 : ${MSGFMT=msgfmt}
61 if ${MSGFMT} -o LC_MESSAGES/gen.mo module1.po module2.po 2> /dev/null; then
62   rm -fr $tmpfiles
63   exit 1
64 fi
65
66 # With msgcat, it should work.
67 tmpfiles="$tmpfiles modules.po"
68 : ${MSGCAT=msgcat} ${MSGFMT=msgfmt}
69 ${MSGCAT} --use-first -o modules.po module1.po module2.po
70 test $? = 0 || { rm -fr $tmpfiles; exit 1; }
71 ${MSGFMT} -o LC_MESSAGES/gen.mo modules.po
72 test $? = 0 || { rm -fr $tmpfiles; exit 1; }
73
74 tmpfiles="$tmpfiles mf-test2.out"
75 : ${GETTEXT=gettext}
76 TEXTDOMAINDIR=.. LANGUAGE=tests \
77 ${GETTEXT} --env LC_ALL=en gen 'error 3' > mf-test2.out
78
79 tmpfiles="$tmpfiles gtmf-test2.ok"
80 echo $ac_n "error 3 translation$ac_c" > gtmf-test2.ok
81
82 : ${DIFF=diff}
83 ${DIFF} gtmf-test2.ok mf-test2.out
84 result=$?
85
86 rm -fr $tmpfiles
87
88 exit $result