-#!/usr/bin/perl -w
-
# WARNING!
# WgetTest.pm is a generated file! Do not edit! Edit WgetTest.pm.in
# instead.
$VERSION = 0.01;
use strict;
+use warnings;
use Cwd;
use File::Path;
sub run {
my $self = shift;
my $result_message = "Test successful.\n";
+ my $errcode;
printf "Running test $self->{_name}\n";
# Setup
- $self->_setup();
+ my $new_result = $self->_setup();
chdir ("$self->{_workdir}/$self->{_name}/input");
+ if (defined $new_result) {
+ $result_message = $new_result;
+ $errcode = 1;
+ goto cleanup;
+ }
# Launch server
my $pid = $self->_fork_and_launch_server();
my $cmdline = $self->{_cmdline};
$cmdline = $self->_substitute_port($cmdline);
print "Calling $cmdline\n";
- my $errcode =
+ $errcode =
($cmdline =~ m{^/.*})
? system ($cmdline)
: system ("$self->{_workdir}/../src/$cmdline");
+ $errcode >>= 8; # XXX: should handle abnormal error codes.
# Shutdown server
# if we didn't explicitely kill the server, we would have to call
# Verify download
unless ($errcode == $self->{_errcode}) {
$result_message = "Test failed: wrong code returned (was: $errcode, expected: $self->{_errcode})\n";
+ goto cleanup;
}
my $error_str;
if ($error_str = $self->_verify_download()) {
$result_message = $error_str;
}
- # Cleanup
+ cleanup:
$self->_cleanup();
print $result_message;
}
chdir ("../input");
- $self->_setup_server();
+ my $ret = $self->_setup_server();
chdir ($self->{_workdir});
+ return $ret;
}
my $self = shift;
chdir ($self->{_workdir});
- File::Path::rmtree ($self->{_name});
+ File::Path::rmtree ($self->{_name}) unless $ENV{WGET_TEST_NO_CLEANUP};
}