1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00
wget/tests/Testing.pm
2005-11-02 06:27:23 -08:00

59 lines
1.2 KiB
Perl
Executable File

#!/usr/bin/perl -w
use HTTPServer;
use strict;
package Testing;
sub Run_HTTP_Test {
my ($urls, $cmdline, $expected_error_code, $expected_downloaded_files) = @_;
my $pid = HTTPServer::run (%{$urls});
print "Spawned HTTP server with pid: $pid\n";
my $returned_error_code = system ($cmdline);
kill ('TERM', $pid);
print "Killed HTTP server\n";
$returned_error_code == $expected_error_code
or die "Test failed: wrong code returned (was: $returned_error_code, expected: $expected_error_code)";
if (my $str = verify_download (%{$expected_downloaded_files})) {
die $str;
}
print "Test successful."
}
sub verify_download {
my (%expected_downloaded_files) = @_;
# use slurp mode to read file content
my $old_input_record_separator = $/;
undef $/;
while (my ($filename, $expected_content) = each %expected_downloaded_files) {
open (FILE, $filename) or return "Test failed: file $filename not downloaded";
my $content = <FILE>;
$content eq $expected_content or return "Test failed: wrong content for file $filename";
close (FILE);
}
$/ = $old_input_record_separator;
return "";
}
1;
# vim: et ts=4 sw=4