Signed-off-by: Francois Gouget fgouget@codeweavers.com --- testbot/lib/WineTestBot/TestAgent.pm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
diff --git a/testbot/lib/WineTestBot/TestAgent.pm b/testbot/lib/WineTestBot/TestAgent.pm index 0aa59da573..fea7e650e1 100644 --- a/testbot/lib/WineTestBot/TestAgent.pm +++ b/testbot/lib/WineTestBot/TestAgent.pm @@ -1354,6 +1354,30 @@ sub Wait($$$;$) return $Result; }
+=pod +=over 12 + +=item C<RunAndWait()> + +Starts the specified command and waits for it to complete, returning its exit +code or a negative value if running or waiting for it failed. + +Note: The TestAgent-side error codes make it so that in most cases any non-zero + return value indicates that the command did not run successfully. + +=back +=cut + +sub RunAndWait($$$;$$$$$) +{ + my ($self, $Argv, $Flags, $WaitTimeout, $ServerInPath, $ServerOutPath, $ServerErrPath, $Keepalive) = @_; + + my $Pid = $self->Run($Argv, $Flags, $ServerInPath, $ServerOutPath, $ServerErrPath); + return -1 if (!$Pid); + my $Ret = $self->Wait($Pid, $WaitTimeout, $Keepalive); + return defined $Ret ? $Ret : -2; +} + sub Rm($@) { my $self = shift @_;