# # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This file incorporates work covered by the following license notice: # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed # with this work for additional information regarding copyright # ownership. The ASF licenses this file to you under the Apache # License, Version 2.0 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.apache.org/licenses/LICENSE-2.0 . # $#ARGV >= 1 or die "Usage: $0 |-SUCCESS|-FAILURE "; if ($ARGV[0] eq "-SUCCESS") { $expect = "SUCCESS"; $input = 0; } elsif ($ARGV[0] eq "-FAILURE") { $expect = "FAILURE"; $input = 0; } else { open INPUT, $ARGV[0] or die "cannot open $ARGV[0]: $!"; $input = 1; } shift @ARGV; $failed = 0; $open = 0; while (1) { $eof = $input ? eof INPUT : $open; $in = if $input && !$eof; if (!$input || $eof || $in =~ /^EXPECT (SUCCESS|FAILURE|\d+)( "([^"]*)")?:\n$/) { if ($open) { close PIPE; if ($? % 256 == 0) { $exit = $? / 256; $ok = $expect eq "SUCCESS" ? $exit == 0 : $expect eq "FAILURE" ? $exit != 0 : $exit == $expect; } else { $exit = "signal"; $ok = 0; } print "\"$title\", " if defined $title; print "expected $expect, got $exit ($?): "; if ($ok) { print "ok\n"; } else { print "FAILED!\n"; $failed = 1; } } last if $eof; $expect = $1 if $input; if (defined $3) { $title = $3; } else { undef $title; } open PIPE, "| @ARGV" or die "cannot start process: $!"; $open = 1; } elsif ($open && $input) { print PIPE $in or die "cannot write to pipe: $!"; } } exit $failed;