X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=tests%2FTest-proxied-https-auth.px;h=4e3fb206dcdf8645a1815beead355aa3ce565c32;hb=1777835073cad695bce04848aa6f33e9686e7fc1;hp=2260658903f39eaf699d6dc6ac0e831ba041d78e;hpb=e72b57629bf49cdfd663002a8bb336a67b958979;p=wget diff --git a/tests/Test-proxied-https-auth.px b/tests/Test-proxied-https-auth.px index 22606589..4e3fb206 100755 --- a/tests/Test-proxied-https-auth.px +++ b/tests/Test-proxied-https-auth.px @@ -1,11 +1,25 @@ #!/usr/bin/perl -use warnings; + use strict; +use warnings; use WgetTest; # For $WGETPATH. + +# Have we even built an HTTPS-supporting Wget? +{ + my @version_lines = `${WgetTest::WGETPATH} --version`; + unless (grep /\+(openssl|gnutls)/, @version_lines) { + print "Not running test: Wget under test doesn't support HTTPS.\n"; + exit 0; + } +} + use HTTP::Daemon; use HTTP::Request; -use IO::Socket::SSL 'debug4'; +use IO::Socket::SSL; + +my $SOCKET = HTTP::Daemon->new (LocalAddr => 'localhost', + ReuseAddr => 1) or die "Cannot create server!!!"; sub get_request { my $conn = shift; @@ -26,9 +40,7 @@ sub get_request { sub do_server { my $alrm = alarm 10; - my $s = HTTP::Daemon->new (LocalAddr => 'localhost', - LocalPort => '8080', - ReuseAddr => 1) or die "Cannot create server!!!"; + my $s = $SOCKET; my $conn; my $rqst; my $rspn; @@ -68,6 +80,10 @@ sub do_server { 'Content-Type' => 'text/plain', 'Connection' => 'close', ], "foobarbaz\n"); + $rspn->protocol('HTTP/1.0'); + print "=====\n"; + print $rspn->as_string; + print "\n=====\n"; print $conn $rspn->as_string; } $conn->close; @@ -87,15 +103,18 @@ sub fork_server { } system ('rm -f needs-auth.txt'); -&fork_server; +my $pid = &fork_server; sleep 1; my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee" - . " --password=Dodgson -e https_proxy=localhost:8080" + . " --password=Dodgson -e https_proxy=localhost:{{port}}" . " --no-check-certificate" . " https://no.such.domain/needs-auth.txt"; +$cmdline =~ s/{{port}}/$SOCKET->sockport()/e; my $code = system($cmdline); +system ('rm -f needs-auth.txt'); warn "Got code: $code\n" if $code; -exit $code; +kill ('TERM', $pid); +exit ($code >> 8);