Mercurial > hg > nginx-tests
changeset 965:75ad4a978306
Tests: stream map module basic tests.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 05 Jul 2016 20:33:53 +0300 |
parents | cca37c930b29 |
children | 3ac72d59430b |
files | stream_map.t |
diffstat | 1 files changed, 72 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/stream_map.t @@ -0,0 +1,72 @@ +#!/usr/bin/perl + +# (C) Sergey Kandaurov +# (C) Nginx, Inc. + +# Tests for stream map module. + +############################################################################### + +use warnings; +use strict; + +use Test::More; + +BEGIN { use FindBin; chdir($FindBin::Bin); } + +use lib 'lib'; +use Test::Nginx; +use Test::Nginx::Stream qw/ stream /; + +############################################################################### + +select STDERR; $| = 1; +select STDOUT; $| = 1; + +my $t = Test::Nginx->new()->has(qw/stream stream_return stream_map/) + ->has(qw/http rewrite/); + +$t->write_file_expand('nginx.conf', <<'EOF'); + +%%TEST_GLOBALS%% + +daemon off; + +events { +} + +stream { + map $server_port $x { + %%PORT_0%% literal; + default default; + ~(%%PORT_2%%) $1; + ~(?P<ncap>%%PORT_3%%) $ncap; + } + + server { + listen 127.0.0.1:%%PORT_0%%; + listen 127.0.0.1:%%PORT_1%%; + listen 127.0.0.1:%%PORT_2%%; + listen 127.0.0.1:%%PORT_3%%; + return $x; + } + + server { + listen 127.0.0.1:%%PORT_4%%; + return $x:${x}; + } +} + +EOF + +$t->try_run('no stream map')->plan(5); + +############################################################################### + +is(stream('127.0.0.1:' . port(0))->read(), 'literal', 'literal'); +is(stream('127.0.0.1:' . port(1))->read(), 'default', 'default'); +is(stream('127.0.0.1:' . port(2))->read(), port(2), 'capture'); +is(stream('127.0.0.1:' . port(3))->read(), port(3), 'named capture'); +is(stream('127.0.0.1:' . port(4))->read(), 'default:default', 'braces'); + +###############################################################################