X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=tests%2FWgetTest.pm.in;h=01657412400d57893387ccf38df1fc965c7c9adc;hb=1fe5ddb7feb233de8b312c24a2b3a482316026aa;hp=d0a62175cca9b0f08eb10478300b6d6142646780;hpb=a6de4721d1ecdf95de967da024171d7b8c1c3c55;p=wget diff --git a/tests/WgetTest.pm.in b/tests/WgetTest.pm.in index d0a62175..01657412 100644 --- a/tests/WgetTest.pm.in +++ b/tests/WgetTest.pm.in @@ -1,5 +1,3 @@ -#!/usr/bin/perl -w - # WARNING! # WgetTest.pm is a generated file! Do not edit! Edit WgetTest.pm.in # instead. @@ -8,6 +6,7 @@ package WgetTest; $VERSION = 0.01; use strict; +use warnings; use Cwd; use File::Path; @@ -70,12 +69,18 @@ sub new { 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(); @@ -85,10 +90,11 @@ sub run { 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 @@ -99,13 +105,14 @@ sub run { # 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; @@ -144,9 +151,10 @@ sub _setup { } chdir ("../input"); - $self->_setup_server(); + my $ret = $self->_setup_server(); chdir ($self->{_workdir}); + return $ret; } @@ -154,7 +162,7 @@ sub _cleanup { my $self = shift; chdir ($self->{_workdir}); - File::Path::rmtree ($self->{_name}); + File::Path::rmtree ($self->{_name}) unless $ENV{WGET_TEST_NO_CLEANUP}; }