Mercurial > hg > nginx-tests
changeset 1321:351b95be742b
Tests: fixed grpc tests hang in accept() on internal nginx error.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 09 Apr 2018 14:53:25 +0300 |
parents | 8bd4b88fcac5 |
children | d6daf03478ad |
files | grpc.t grpc_request_buffering.t grpc_ssl.t |
diffstat | 3 files changed, 42 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/grpc.t +++ b/grpc.t @@ -463,7 +463,20 @@ sub grpc { { name => 'te', value => 'trailers', mode => 2 }]}); if (!$extra{reuse}) { - $client = $server->accept() or return; + eval { + local $SIG{ALRM} = sub { die "timeout\n" }; + alarm(5); + + $client = $server->accept() or return; + + alarm(0); + }; + alarm(0); + if ($@) { + log_in("died: $@"); + return undef; + } + log2c("(new connection $client)"); $n++;
--- a/grpc_request_buffering.t +++ b/grpc_request_buffering.t @@ -102,7 +102,20 @@ sub grpc { { name => 'content-length', value => '5' }]}); if (!$extra{reuse}) { - $client = $server->accept() or return; + eval { + local $SIG{ALRM} = sub { die "timeout\n" }; + alarm(5); + + $client = $server->accept() or return; + + alarm(0); + }; + alarm(0); + if ($@) { + log_in("died: $@"); + return undef; + } + log2c("(new connection $client)"); $client->sysread(my $buf, 24) == 24 or return; # preface
--- a/grpc_ssl.t +++ b/grpc_ssl.t @@ -241,7 +241,20 @@ sub grpc { { name => 'te', value => 'trailers', mode => 2 }]}); if (!$extra{reuse}) { - $client = $server->accept() or return; + eval { + local $SIG{ALRM} = sub { die "timeout\n" }; + alarm(5); + + $client = $server->accept() or return; + + alarm(0); + }; + alarm(0); + if ($@) { + log_in("died: $@"); + return undef; + } + log2c("(new connection $client)"); $client->sysread(my $buf, 24) == 24 or return; # preface