2 # This file is part of the LibreOffice project.
4 # This Source Code Form is subject to the terms of the Mozilla Public
5 # License, v. 2.0. If a copy of the MPL was not distributed with this
6 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 # This file incorporates work covered by the following license notice:
10 # Licensed to the Apache Software Foundation (ASF) under one or more
11 # contributor license agreements. See the NOTICE file distributed
12 # with this work for additional information regarding copyright
13 # ownership. The ASF licenses this file to you under the Apache
14 # License, Version 2.0 (the "License"); you may not use this file
15 # except in compliance with the License. You may obtain a copy of
16 # the License at http://www.apache.org/licenses/LICENSE-2.0 .
27 or die "Usage: $0 <input file>|-SUCCESS|-FAILURE <command> <arguments...>";
28 if ($ARGV[0] eq "-SUCCESS")
33 elsif ($ARGV[0] eq "-FAILURE")
40 open INPUT
, $ARGV[0] or die "cannot open $ARGV[0]: $!";
47 $eof = $input ?
eof INPUT
: $open;
48 $in = <INPUT
> if $input && !$eof;
50 || $in =~ /^EXPECT (SUCCESS|FAILURE|\d+)( "([^"]*)")?:\n$/)
58 $ok = $expect eq "SUCCESS" ?
$exit == 0
59 : $expect eq "FAILURE" ?
$exit != 0 : $exit == $expect;
66 print "\"$title\", " if defined $title;
67 print "expected $expect, got $exit ($?): ";
79 $expect = $1 if $input;
90 for ($i = 0; $i != scalar(@ARGV); ++$i)
92 $prog .= ' ' unless $i == 0;
93 if ($assigns && $ARGV[$i] =~ /^([A-Za-z_][A-Za-z0-9_]+)=(.*)$/)
95 $prog .= $1 . "='" . encode
($2) . "'";
99 $prog .= "'" . encode
($ARGV[$i]) . "'";
103 open PIPE
, "| $prog" or die "cannot start process: $!";
106 elsif ($open && $input)
108 print PIPE
$in or die "cannot write to pipe: $!";