# HG changeset patch # User Sergey Kandaurov # Date 1467740033 -10800 # Node ID 75ad4a97830656f5df3eccf672a7fd4b36f38b07 # Parent cca37c930b29c60a04057d6b209b409f822d0125 Tests: stream map module basic tests. diff --git a/stream_map.t b/stream_map.t 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%%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'); + +###############################################################################