diff grpc_next_upstream.t @ 1311:4979af9fd905

Tests: grpc request buffering and next upstream tests.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 29 Mar 2018 18:35:02 +0300
parents proxy_next_upstream.t@882267679006
children 97c8280de681
line wrap: on
line diff
copy from proxy_next_upstream.t
copy to grpc_next_upstream.t
--- a/proxy_next_upstream.t
+++ b/grpc_next_upstream.t
@@ -1,8 +1,10 @@
 #!/usr/bin/perl
 
 # (C) Maxim Dounin
+# (C) Sergey Kandaurov
+# (C) Nginx, Inc.
 
-# Tests for http proxy module, proxy_next_upstream directive.
+# Tests for grpc module, grpc_next_upstream directive.
 
 ###############################################################################
 
@@ -21,7 +23,7 @@ use Test::Nginx;
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(7);
+my $t = Test::Nginx->new()->has(qw/http http_v2 grpc rewrite/);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -36,7 +38,7 @@ http {
     %%TEST_GLOBALS_HTTP%%
 
     upstream u {
-        server 127.0.0.1:8081;
+        server 127.0.0.1:8081 max_fails=2;
         server 127.0.0.1:8082;
     }
 
@@ -50,15 +52,15 @@ http {
         server_name  localhost;
 
         location / {
-            proxy_pass http://u;
-            proxy_next_upstream http_500 http_404;
+            grpc_pass u;
+            grpc_next_upstream http_500 http_404 invalid_header;
         }
 
         location /all/ {
-            proxy_pass http://u2;
-            proxy_next_upstream http_500 http_404;
+            grpc_pass u2;
+            grpc_next_upstream http_500 http_404;
             error_page 404 /all/404;
-            proxy_intercept_errors on;
+            grpc_intercept_errors on;
         }
 
         location /all/404 {
@@ -67,7 +69,7 @@ http {
     }
 
     server {
-        listen       127.0.0.1:8081;
+        listen       127.0.0.1:8081 http2;
         server_name  localhost;
 
         location / {
@@ -79,6 +81,9 @@ http {
         location /500 {
             return 500;
         }
+        location /444 {
+            return 444;
+        }
 
         location /all/ {
             return 404;
@@ -86,7 +91,7 @@ http {
     }
 
     server {
-        listen       127.0.0.1:8082;
+        listen       127.0.0.1:8082 http2;
         server_name  localhost;
 
         location / {
@@ -101,7 +106,7 @@ http {
 
 EOF
 
-$t->run();
+$t->try_run('no grpc')->plan(9);
 
 ###############################################################################
 
@@ -110,14 +115,19 @@ my ($p1, $p2) = (port(8081), port(8082))
 # check if both request fallback to a backend
 # which returns valid response
 
-like(http_get('/'), qr/SEE-THIS/, 'proxy request');
+like(http_get('/'), qr/SEE-THIS/, 'grpc request');
 like(http_get('/'), qr/SEE-THIS/, 'second request');
 
 # make sure backend isn't switched off after
-# proxy_next_upstream http_404
+# grpc_next_upstream http_404
 
 like(http_get('/ok') . http_get('/ok'), qr/AND-THIS/, 'not down');
 
+# next upstream on invalid_header
+
+like(http_get('/444'), qr/SEE-THIS/, 'request 444');
+like(http_get('/444'), qr/SEE-THIS/, 'request 444 second');
+
 # next upstream on http_500
 
 like(http_get('/500'), qr/SEE-THIS/, 'request 500');