~ubuntu-branches/debian/experimental/intltool/experimental

« back to all changes in this revision

Viewing changes to tests/selftest.pl.in

  • Committer: Bazaar Package Importer
  • Author(s): Takuo KITAME
  • Date: 2002-04-01 06:35:32 UTC
  • Revision ID: james.westby@ubuntu.com-20020401063532-bw4twe4jtac366wp
Tags: upstream-0.18
ImportĀ upstreamĀ versionĀ 0.18

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!@PERL@ -w
 
2
 
 
3
#  Selftest for intltool
 
4
#
 
5
#  Copyright (C) 2000 Free Software Foundation.
 
6
#
 
7
#  This library is free software; you can redistribute it and/or
 
8
#  modify it under the terms of the GNU General Public License as
 
9
#  published by the Free Software Foundation; either version 2 of the
 
10
#  License, or (at your option) any later version.
 
11
#
 
12
#  This script is distributed in the hope that it will be useful,
 
13
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
15
#  General Public License for more details.
 
16
#
 
17
#  You should have received a copy of the GNU General Public License
 
18
#  along with this library; if not, write to the Free Software
 
19
#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
20
#
 
21
#  Author(s): Kenneth Christiansen
 
22
 
 
23
## Release information
 
24
my $PROGRAM  = "selftest";
 
25
my $VERSION  = "0.1";
 
26
my $result;
 
27
my $case;
 
28
 
 
29
## Loaded modules
 
30
use strict;
 
31
 
 
32
## Always print as the first thing
 
33
$| = 1;
 
34
 
 
35
my $failed = 0;
 
36
 
 
37
my $srcdir = $ENV{"srcdir"} || ".";
 
38
 
 
39
sub check_extract_result($)
 
40
{
 
41
    my ($testcase) = @_;
 
42
 
 
43
    my $result =`diff -u $srcdir/results/$testcase.h cases/$testcase.h`;
 
44
    
 
45
    if ($? == 0 && $result eq "") { 
 
46
        print "[OK]\n"; ## diff was empty, ie. files were equal
 
47
    } else { 
 
48
        print "[FAILED] ($testcase)\n"; 
 
49
        open OUT, ">>errors";
 
50
        print OUT $result;
 
51
        close OUT;
 
52
        $failed = 1;
 
53
    }
 
54
}
 
55
 
 
56
sub check_merge_result($)
 
57
{
 
58
    my ($testcase) = @_;
 
59
 
 
60
    $testcase =~ s/\.in$//;
 
61
    my $result =`diff -u $srcdir/results/$testcase cases/$testcase`;
 
62
 
 
63
    if ($? == 0 && $result eq "") {
 
64
        print "[OK]\n"; ## diff was empty, ie. files were equal
 
65
    } else {
 
66
        print "[FAILED] ($testcase)\n";
 
67
        open OUT, ">>errors";
 
68
        print OUT $result;
 
69
        close OUT;
 
70
        $failed = 1;
 
71
    }
 
72
}
 
73
 
 
74
 
 
75
## SELFTESTS
 
76
 
 
77
## Welcome notice
 
78
 
 
79
print "Running self test of the intltool module\n\n";
 
80
unlink "errors";
 
81
 
 
82
system("cp $srcdir/cases/*.* cases") if $srcdir ne ".";
 
83
 
 
84
print " 1. Extract messages from simple desktop file:                       ";
 
85
$case = "extract1.desktop";
 
86
system("/usr/bin/perl ../intltool-extract --type=gettext/ini --quiet --update cases/$case") == 0 or $failed = 1;
 
87
check_extract_result($case);
 
88
 
 
89
print " 2. Merge translations into a Bonobo UI style file:                  ";
 
90
$case = "merge1.xml";
 
91
system("/usr/bin/perl ../intltool-merge -o -p --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
92
check_merge_result($case);
 
93
 
 
94
print " 3. Extract messages from a multi-line XML file:                     ";
 
95
$case = "extract7.xml";
 
96
system("/usr/bin/perl ../intltool-extract --type=gettext/xml --quiet --update cases/$case") == 0 or $failed = 1;
 
97
check_extract_result($case);
 
98
 
 
99
print " 4. Merge translations into a multi-line XML file:                   ";
 
100
$case = "merge7.xml";
 
101
system("/usr/bin/perl ../intltool-merge -x -p --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
102
check_merge_result($case);
 
103
 
 
104
print " 5. Extract messages with unusual characters in the XML tag:         ";
 
105
$case = "extract3.xml.in";
 
106
system("/usr/bin/perl ../intltool-extract --type=gettext/xml --quiet --update cases/$case") == 0 or $failed = 1;
 
107
check_extract_result($case);
 
108
 
 
109
print " 6. Merge translations into a pong style XML file:                   ";
 
110
$case = "merge4.xml";
 
111
system("/usr/bin/perl ../intltool-merge -x -p --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
112
check_merge_result($case);
 
113
 
 
114
print " 7. Extract messages from a glade style XML file:                    ";
 
115
$case = "extract6.glade";
 
116
system("/usr/bin/perl ../intltool-extract --type=gettext/glade --quiet --update cases/$case") == 0 or $failed = 1;
 
117
check_extract_result($case);
 
118
 
 
119
print " 8. Merge translations into a dia sheet style XML file:              ";
 
120
$case = "merge5u.sheet";
 
121
system("/usr/bin/perl ../intltool-merge -x -u --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
122
check_merge_result($case);
 
123
 
 
124
print " 9. Merge translations into a dia sheet style XML file [broken XML]: ";
 
125
$case = "merge5p.sheet";
 
126
system("/usr/bin/perl ../intltool-merge -x -p --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
127
check_merge_result($case);
 
128
 
 
129
print "10. Merge translations that include escaped .po strings:             ";
 
130
$case = "merge6.xml";
 
131
system("/usr/bin/perl ../intltool-merge -x -u --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
132
check_merge_result($case);
 
133
 
 
134
print "11. Merge translations into a .keys file:                            ";
 
135
$case = "merge8.keys";
 
136
system("/usr/bin/perl ../intltool-merge -k -u --quiet cases cases/$case.in cases/$case") == 0 or $failed = 1;
 
137
check_merge_result($case);
 
138
 
 
139
print "12. Extract messages from a glade 2.0 style XML file:                ";
 
140
$case = "extract8.glade";
 
141
system("/usr/bin/perl ../intltool-extract --type=gettext/glade --quiet --update cases/$case") == 0 or $failed = 1;
 
142
check_extract_result($case);
 
143
 
 
144
exit $failed;