changeset 1513:02412b209838

Tests: testing worker_shutdown_timeout works with HTTP/2. A request in HTTP/2 is ensured to be finalized with worker_shutdown_timeout by testing that it is logged at least, and the status code is not set as it would on proxy_read_timeout. After the fix has been fixed in ab5cac9d3f00, the latter can be tuned to a safer value without losing in execution time.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 23 Sep 2019 20:46:30 +0300
parents e84a3115bfe8
children c6f27bcdd9d9
files worker_shutdown_timeout_h2.t
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/worker_shutdown_timeout_h2.t
+++ b/worker_shutdown_timeout_h2.t
@@ -23,7 +23,7 @@ use Test::Nginx::HTTP2;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http http_v2 proxy/)->plan(1);
+my $t = Test::Nginx->new()->has(qw/http http_v2 proxy/)->plan(2);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -44,7 +44,7 @@ http {
 
         location / {
             proxy_pass http://127.0.0.1:8081;
-            proxy_read_timeout 200ms;
+            proxy_read_timeout 5s;
         }
     }
 }
@@ -61,6 +61,13 @@ ok($s->new_stream(), 'new stream');
 select undef, undef, undef, 0.1;
 $t->stop();
 
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.17.4');
+
+like($t->read_file('access.log'), qr/ (?!504)\d{3} /, 'shutdown timeout');
+
+}
+
 $t->todo_alerts() unless $t->has_version('1.17.4');
 
 ###############################################################################