#!/usr/local/bin/perl -w # # Check GET via HTTP. # my $num_tests = 10; my(@test_scripts) = qw(test perl-status); %get_only = map { $_,1 } qw(perl-status); my(@sys_tests) = qw(syswrite_1 syswrite_2 syswrite_3); if($] > 5.005_03) { $num_tests += (3 + @sys_tests); push @test_scripts, qw(io/perlio.pl); } print "1..$num_tests\n"; use Apache::test; require LWP::UserAgent; my $ua = new LWP::UserAgent; # create a useragent to test my($request,$response,$str); foreach $s (@test_scripts) { $netloc = $net::httpserver; $script = $PERL_DIR . "/$s"; $url = new URI::URL("http://$netloc$script?query"); $request = new HTTP::Request('GET', $url); print "GET $url\n\n"; $response = $ua->request($request, undef, undef); $str = $response->as_string; print "$str\n"; die "$1\n" if $str =~ /(Internal Server Error)/; test ++$i, ($response->is_success); next if $get_only{$s}; test ++$i, ($str =~ /^REQUEST_METHOD=GET$/m); test ++$i, ($str =~ /^QUERY_STRING=query$/m); if ($s eq 'io/perlio.pl') { foreach my $h (@sys_tests) { $url = new URI::URL("http://$netloc$script?$h"); $request = new HTTP::Request('GET', $url); print "GET $url\n\n"; $response = $ua->request($request, undef, undef); $str = $response->as_string; print "$str\n"; if ($h eq 'syswrite_noheader') { test ++$i, $str =~ /(Internal Server Error)/; } else { die "$1\n" if $str =~ /(Internal Server Error)/; test ++$i, ($response->is_success); } } } } my $mp_version; my $server = $response->header("Server"); ++$mp_version while $server =~ /(mod_perl)/g; test ++$i, $mp_version == 1; print "Server: ", $response->header("Server"), "\n"; #test PerlSetupEnv Off test ++$i, fetch("$PERL_DIR/noenv/test.pl") !~ /SERVER_SOFTWARE/m; print "pounding a bit...\n"; for (1..3) { test ++$i, ($ua->request($request, undef, undef)->is_success); } test ++$i, fetch("/perl/test?0") =~ /SCALAR_ARGS=0/; # avoid -w warning $dummy = $net::httpserver; $dummy = $net::perldir;