Tests: fixed grpc tests hang in accept() on internal nginx error.
diff --git a/grpc.t b/grpc.t index 5ef267e..9ddd010 100644 --- a/grpc.t +++ b/grpc.t
@@ -463,7 +463,20 @@ { 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++;
diff --git a/grpc_request_buffering.t b/grpc_request_buffering.t index f290e8e..26b394c 100644 --- a/grpc_request_buffering.t +++ b/grpc_request_buffering.t
@@ -102,7 +102,20 @@ { 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
diff --git a/grpc_ssl.t b/grpc_ssl.t index 98313fa..858f80a 100644 --- a/grpc_ssl.t +++ b/grpc_ssl.t
@@ -241,7 +241,20 @@ { 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