diff options
author | Daniel Stenberg <daniel@haxx.se> | 2020-04-24 13:29:48 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2020-04-25 00:51:01 +0200 |
commit | 11091cd4d2e86a47164604bf0b58781da9c1297b (patch) | |
tree | 302d7d5a4568e49040bc6461d43ef63a300f1fbf /tests/runtests.pl | |
parent | 4298b97020020819d474f7aee372d68638145dc0 (diff) | |
download | curl-11091cd4d2e86a47164604bf0b58781da9c1297b.tar.gz |
runtests: when <killserver> mentions http, kill http/2 too
Since the http2 test server is a mere proxy that needs to know about the
dynamic port the HTTP server is using, it too needs to get restarted
when the http server is killed.
A regression caused by 80d6515.
Fixes #5289
Closes #5291
Diffstat (limited to 'tests/runtests.pl')
-rwxr-xr-x | tests/runtests.pl | 66 |
1 files changed, 9 insertions, 57 deletions
diff --git a/tests/runtests.pl b/tests/runtests.pl index d43b2772b..051b23060 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -763,6 +763,7 @@ sub torture { # sub stopserver { my ($server, $pidlist) = @_; + # # kill sockfilter processes for pingpong relative server # @@ -792,6 +793,12 @@ sub stopserver { # given a ssh server, also kill socks piggybacking one push @killservers, "socks${2}"; } + if($server eq "http") { + # since the http2 server is a proxy that needs to know about the + # dynamic http port it too needs to get restarted when the http server + # is killed + push @killservers, "http/2"; + } push @killservers, $server; # # kill given pids and server relative ones clearing them in %run hash @@ -2702,7 +2709,7 @@ sub cleardir { return 0; # can't open dir while($file = readdir(DIR)) { if(($file !~ /^\./)) { - unlink("$dir/$file"); + #unlink("$dir/$file"); $count++; } } @@ -3969,64 +3976,9 @@ sub singletest { my @killtestservers = getpart("client", "killserver"); if(@killtestservers) { - # - # All servers relative to the given one must be stopped also - # - my @killservers; foreach my $server (@killtestservers) { chomp $server; - if($server =~ /^(ftp|http|imap|pop3|smtp)s((\d*)(-ipv6|-unix|))$/) { - # given a stunnel ssl server, also kill non-ssl underlying one - push @killservers, "${1}${2}"; - } - elsif($server =~ /^(ftp|http|imap|pop3|smtp)((\d*)(-ipv6|-unix|))$/) { - # given a non-ssl server, also kill stunnel piggybacking one - push @killservers, "${1}s${2}"; - } - elsif($server =~ /^(socks)((\d*)(-ipv6|))$/) { - # given a socks server, also kill ssh underlying one - push @killservers, "ssh${2}"; - } - elsif($server =~ /^(ssh)((\d*)(-ipv6|))$/) { - # given a ssh server, also kill socks piggybacking one - push @killservers, "socks${2}"; - } - push @killservers, $server; - } - # - # kill sockfilter processes for pingpong relative servers - # - foreach my $server (@killservers) { - if($server =~ /^(ftp|imap|pop3|smtp)s?(\d*)(-ipv6|)$/) { - my $proto = $1; - my $idnum = ($2 && ($2 > 1)) ? $2 : 1; - my $ipvnum = ($3 && ($3 =~ /6$/)) ? 6 : 4; - killsockfilters($proto, $ipvnum, $idnum, $verbose); - } - } - # - # kill server relative pids clearing them in %run hash - # - my $pidlist; - foreach my $server (@killservers) { - if($run{$server}) { - $pidlist .= "$run{$server} "; - $run{$server} = 0; - } - $runcert{$server} = 0 if($runcert{$server}); - } - killpid($verbose, $pidlist); - # - # cleanup server pid files - # - foreach my $server (@killservers) { - my $pidfile = $serverpidfile{$server}; - my $pid = processexists($pidfile); - if($pid > 0) { - logmsg "Warning: $server server unexpectedly alive\n"; - killpid($verbose, $pid); - } - unlink($pidfile) if(-f $pidfile); + stopserver($server); } } |