changeset 1195:af7feabed82a

Tests: stream proxy ssl session tests no longer use http backends.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 19 Jul 2017 16:21:42 +0300
parents 39cfdf581253
children 68c8f2778c50
files stream_proxy_ssl.t stream_upstream_zone_ssl.t
diffstat 2 files changed, 37 insertions(+), 68 deletions(-) [+]
line wrap: on
line diff
--- 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;
-}
-
-###############################################################################
--- 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;
-}
-
-###############################################################################