sub run{
my ($test, $meta) = @_;
get_logger->trace("Running on test $test...");
- my $ret = fork // get_logger->logdie("Fork failed: $!");
mkfifo 'fifo1', 0600 or die $! unless -e 'fifo1';
mkfifo 'fifo2', 0600 or die $! unless -e 'fifo2';
+
+ my $ret = fork // get_logger->logdie("Fork failed: $!");
if ($ret) {
$meta->{files}{prog}{run}->($meta->{files}{prog}{name}, fds => [qw/0 fifo1 1 >fifo2/], map {defined $meta->{$_} ? ($_ => $meta->{$_}) : () } qw/timeout mlimit/);
- wait;
+ waitpid $ret, 0;
die [WA, "Wrong Answer"] if $?;
} else {
try {