Bump for 3.6-28
[LibreOffice.git] / solenv / bin / exectest.pl
blobd343cf298017ecebf917aeef960389b76f7335ca
1 #*************************************************************************
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 # Copyright 2000, 2010 Oracle and/or its affiliates.
7 # OpenOffice.org - a multi-platform office productivity suite
9 # This file is part of OpenOffice.org.
11 # OpenOffice.org is free software: you can redistribute it and/or modify
12 # it under the terms of the GNU Lesser General Public License version 3
13 # only, as published by the Free Software Foundation.
15 # OpenOffice.org is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU Lesser General Public License version 3 for more details
19 # (a copy is included in the LICENSE file that accompanied this code).
21 # You should have received a copy of the GNU Lesser General Public License
22 # version 3 along with OpenOffice.org. If not, see
23 # <http://www.openoffice.org/license.html>
24 # for a copy of the LGPLv3 License.
26 #*************************************************************************
28 $#ARGV >= 1
29 or die "Usage: $0 <input file>|-SUCCESS|-FAILURE <command> <arguments...>";
30 if ($ARGV[0] eq "-SUCCESS")
32 $expect = "SUCCESS";
33 $input = 0;
35 elsif ($ARGV[0] eq "-FAILURE")
37 $expect = "FAILURE";
38 $input = 0;
40 else
42 open INPUT, $ARGV[0] or die "cannot open $ARGV[0]: $!";
43 $input = 1;
45 shift @ARGV;
46 $failed = 0;
47 $open = 0;
48 while (1) {
49 $eof = $input ? eof INPUT : $open;
50 $in = <INPUT> if $input && !$eof;
51 if (!$input || $eof
52 || $in =~ /^EXPECT (SUCCESS|FAILURE|\d+)( "([^"]*)")?:\n$/)
54 if ($open)
56 close PIPE;
57 if ($? % 256 == 0)
59 $exit = $? / 256;
60 $ok = $expect eq "SUCCESS" ? $exit == 0
61 : $expect eq "FAILURE" ? $exit != 0 : $exit == $expect;
63 else
65 $exit = "signal";
66 $ok = 0;
68 print "\"$title\", " if defined $title;
69 print "expected $expect, got $exit ($?): ";
70 if ($ok)
72 print "ok\n";
74 else
76 print "FAILED!\n";
77 $failed = 1;
80 last if $eof;
81 $expect = $1 if $input;
82 if (defined $3)
84 $title = $3;
86 else
88 undef $title;
90 open PIPE, "| @ARGV" or die "cannot start process: $!";
91 $open = 1;
93 elsif ($open && $input)
95 print PIPE $in or die "cannot write to pipe: $!";
98 exit $failed;