# HG changeset patch # User Sergey Kandaurov # Date 1500470502 -10800 # Node ID af7feabed82a6e92b96213a155f4aeb3c28f0acc # Parent 39cfdf581253ae91fdd3127e8407becf865aee79 Tests: stream proxy ssl session tests no longer use http backends. diff --git a/stream_proxy_ssl.t b/stream_proxy_ssl.t --- a/stream_proxy_ssl.t +++ b/stream_proxy_ssl.t @@ -16,6 +16,7 @@ BEGIN { use FindBin; chdir($FindBin::Bin use lib 'lib'; use Test::Nginx; +use Test::Nginx::Stream qw/ stream /; ############################################################################### @@ -23,6 +24,7 @@ select STDERR; $| = 1; select STDOUT; $| = 1; my $t = Test::Nginx->new()->has(qw/stream stream_ssl http http_ssl/) + ->has(qw/stream_return/) ->has_daemon('openssl')->plan(5); $t->write_file_expand('nginx.conf', <<'EOF'); @@ -40,14 +42,28 @@ stream { proxy_connect_timeout 2s; server { - listen 127.0.0.1:8080; - proxy_pass 127.0.0.1:8082; + listen 127.0.0.1:8081; + proxy_pass 127.0.0.1:8083; proxy_ssl_session_reuse off; } server { - listen 127.0.0.1:8081; - proxy_pass 127.0.0.1:8082; + listen 127.0.0.1:8082; + proxy_pass 127.0.0.1:8083; + } + + server { + listen 127.0.0.1:8083 ssl; + return $ssl_session_reused; + + ssl_certificate_key localhost.key; + ssl_certificate localhost.crt; + ssl_session_cache builtin; + } + + server { + listen 127.0.0.1:8080; + proxy_pass 127.0.0.1:8084; } } @@ -55,16 +71,11 @@ http { %%TEST_GLOBALS_HTTP%% server { - listen 127.0.0.1:8082 ssl; + listen 127.0.0.1:8084 ssl; server_name localhost; ssl_certificate_key localhost.key; ssl_certificate localhost.crt; - ssl_session_cache builtin; - - location / { - add_header X-Session $ssl_session_reused; - } } } @@ -94,13 +105,11 @@ foreach my $name ('localhost') { ############################################################################### -like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), - qr/200 OK.*X-Session: \./s, 'ssl 2'); +is(stream('127.0.0.1:' . port(8081))->read(), '.', 'ssl'); +is(stream('127.0.0.1:' . port(8081))->read(), '.', 'ssl 2'); -like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl reuse session'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), - qr/200 OK.*X-Session: r/s, 'ssl reuse session 2'); +is(stream('127.0.0.1:' . port(8082))->read(), '.', 'ssl session new'); +is(stream('127.0.0.1:' . port(8082))->read(), 'r', 'ssl session reused'); my $s = http('', start => 1); @@ -109,16 +118,3 @@ sleep 3; like(http_get('/', socket => $s), qr/200 OK/, 'proxy connect timeout'); ############################################################################### - -sub getconn { - my $peer = shift; - my $s = IO::Socket::INET->new( - Proto => 'tcp', - PeerAddr => $peer - ) - or die "Can't connect to nginx: $!\n"; - - return $s; -} - -############################################################################### diff --git a/stream_upstream_zone_ssl.t b/stream_upstream_zone_ssl.t --- a/stream_upstream_zone_ssl.t +++ b/stream_upstream_zone_ssl.t @@ -16,13 +16,14 @@ 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_ssl http http_ssl/) +my $t = Test::Nginx->new()->has(qw/stream stream_ssl stream_return/) ->has(qw/stream_upstream_zone/)->has_daemon('openssl')->plan(8); $t->write_file_expand('nginx.conf', <<'EOF'); @@ -70,21 +71,14 @@ stream { listen 127.0.0.1:8083; proxy_pass u2; } -} - -http { - %%TEST_GLOBALS_HTTP%% server { - listen 127.0.0.1:8084 ssl; + listen 127.0.0.1:8084 ssl; + return $ssl_session_reused; ssl_certificate_key localhost.key; ssl_certificate localhost.crt; ssl_session_cache builtin; - - location / { - add_header X-Session $ssl_session_reused; - } } } @@ -98,8 +92,6 @@ distinguished_name = req_distinguished_n [ req_distinguished_name ] EOF -$t->write_file('index.html', ''); - my $d = $t->testdir(); foreach my $name ('localhost') { @@ -114,35 +106,16 @@ foreach my $name ('localhost') { ############################################################################### -like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), - qr/200 OK.*X-Session: \./s, 'ssl 2'); +is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl'); +is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl 2'); -like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl reuse session'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), - qr/200 OK.*X-Session: r/s, 'ssl reuse session 2'); +is(stream('127.0.0.1:' . port(8081))->read(), '.', 'ssl session new'); +is(stream('127.0.0.1:' . port(8081))->read(), 'r', 'ssl session reused'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8082))), - qr/200 OK.*X-Session: \./s, 'ssl backup'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8083))), - qr/200 OK.*X-Session: \./s, 'ssl backup 2'); +is(stream('127.0.0.1:' . port(8082))->read(), '.', 'backup ssl'); +is(stream('127.0.0.1:' . port(8082))->read(), '.', 'backup ssl 2'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8082))), - qr/200 OK.*X-Session: \./s, 'ssl reuse session backup'); -like(http_get('/', socket => getconn('127.0.0.1:' . port(8083))), - qr/200 OK.*X-Session: r/s, 'ssl reuse session backup 2'); +is(stream('127.0.0.1:' . port(8083))->read(), '.', 'backup ssl session new'); +is(stream('127.0.0.1:' . port(8083))->read(), 'r', 'backup ssl session reused'); ############################################################################### - -sub getconn { - my $peer = shift; - my $s = IO::Socket::INET->new( - Proto => 'tcp', - PeerAddr => $peer - ) - or die "Can't connect to nginx: $!\n"; - - return $s; -} - -###############################################################################