# HG changeset patch # User Sergey Kandaurov # Date 1501679588 -10800 # Node ID 76640144791bb234d212d454700a1b2c9602d0b9 # Parent 630c3e7a5d40a3c7bbca2527109fc7621a6d2437 Tests: basic upstream zone tests. diff --git a/upstream_zone.t b/upstream_zone.t new file mode 100644 --- /dev/null +++ b/upstream_zone.t @@ -0,0 +1,90 @@ +#!/usr/bin/perl + +# (C) Sergey Kandaurov +# (C) Nginx, Inc. + +# Tests for upstream zone. + +############################################################################### + +use warnings; +use strict; + +use Test::More; + +BEGIN { use FindBin; chdir($FindBin::Bin); } + +use lib 'lib'; +use Test::Nginx; + +############################################################################### + +select STDERR; $| = 1; +select STDOUT; $| = 1; + +my $t = Test::Nginx->new()->has(qw/http proxy upstream_zone/)->plan(2) + ->write_file_expand('nginx.conf', <<'EOF'); + +%%TEST_GLOBALS%% + +daemon off; + +events { +} + +http { + %%TEST_GLOBALS_HTTP%% + + upstream u { + zone u 1m; + server 127.0.0.1:8081; + } + + upstream u2 { + zone u; + server 127.0.0.1:8081 down; + server 127.0.0.1:8081 backup down; + } + + server { + listen 127.0.0.1:8081; + server_name localhost; + + location / {} + } + + server { + listen 127.0.0.1:8080; + server_name localhost; + + add_header X-Name $upstream_addr always; + + location / { + proxy_pass http://u/; + } + + location /down { + proxy_pass http://u2/; + } + } +} + +EOF + +$t->write_file('index.html', ''); +$t->run(); + +############################################################################### + +my $p = port(8081); + +TODO: { +todo_skip 'leaves coredump', 2 unless $^O ne 'MSWin32' + or $ENV{TEST_NGINX_UNSAFE} or $t->has_version('1.13.4'); + +like(http_get('/'), qr/X-Name: 127.0.0.1:$p/, 'upstream name'); +like(http_get('/down'), qr/X-Name: u2/, 'no live upstreams'); + +} + +###############################################################################