diff stream_proxy_next_upstream.t @ 1632:da1325cb1c39

Tests: added proxy_next_upstream test with "down".
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 02 Dec 2020 12:16:32 +0000
parents f3ba4c74de31
children 5ac6efbe5552
line wrap: on
line diff
--- a/stream_proxy_next_upstream.t
+++ b/stream_proxy_next_upstream.t
@@ -23,7 +23,7 @@ use Test::Nginx::Stream qw/ stream /;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/stream/)->plan(3);
+my $t = Test::Nginx->new()->has(qw/stream/)->plan(5);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -48,6 +48,11 @@ stream {
         server 127.0.0.1:8085 backup;
     }
 
+    upstream u3 {
+        server 127.0.0.1:8083;
+        server 127.0.0.1:8085 down;
+    }
+
     proxy_connect_timeout 2;
 
     server {
@@ -68,6 +73,15 @@ stream {
         proxy_next_upstream on;
         proxy_next_upstream_tries 2;
     }
+
+    log_format test "$upstream_addr";
+
+    server {
+        listen      127.0.0.1:8086;
+        proxy_pass  u3;
+        proxy_next_upstream on;
+        access_log  %%TESTDIR%%/test.log test;
+    }
 }
 
 EOF
@@ -84,6 +98,20 @@ is(stream('127.0.0.1:' . port(8081))->io
 
 is(stream('127.0.0.1:' . port(8082))->io('.'), '', 'next tries');
 
+# make sure backend marked as down doesn't count towards "no live upstreams"
+
+is(stream('127.0.0.1:' . port(8086))->io('.'), '', 'next down');
+
+$t->stop();
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.19.6');
+
+is($t->read_file('test.log'), '127.0.0.1:' . port(8083) . "\n",
+	'next down log');
+
+}
+
 ###############################################################################
 
 sub stream_daemon {