comparison stream_upstream_zone_ssl.t @ 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 8ef51dbb5d69
children 155573499f20
comparison
equal deleted inserted replaced
1194:39cfdf581253 1195:af7feabed82a
14 14
15 BEGIN { use FindBin; chdir($FindBin::Bin); } 15 BEGIN { use FindBin; chdir($FindBin::Bin); }
16 16
17 use lib 'lib'; 17 use lib 'lib';
18 use Test::Nginx; 18 use Test::Nginx;
19 use Test::Nginx::Stream qw/ stream /;
19 20
20 ############################################################################### 21 ###############################################################################
21 22
22 select STDERR; $| = 1; 23 select STDERR; $| = 1;
23 select STDOUT; $| = 1; 24 select STDOUT; $| = 1;
24 25
25 my $t = Test::Nginx->new()->has(qw/stream stream_ssl http http_ssl/) 26 my $t = Test::Nginx->new()->has(qw/stream stream_ssl stream_return/)
26 ->has(qw/stream_upstream_zone/)->has_daemon('openssl')->plan(8); 27 ->has(qw/stream_upstream_zone/)->has_daemon('openssl')->plan(8);
27 28
28 $t->write_file_expand('nginx.conf', <<'EOF'); 29 $t->write_file_expand('nginx.conf', <<'EOF');
29 30
30 %%TEST_GLOBALS%% 31 %%TEST_GLOBALS%%
68 69
69 server { 70 server {
70 listen 127.0.0.1:8083; 71 listen 127.0.0.1:8083;
71 proxy_pass u2; 72 proxy_pass u2;
72 } 73 }
73 }
74
75 http {
76 %%TEST_GLOBALS_HTTP%%
77 74
78 server { 75 server {
79 listen 127.0.0.1:8084 ssl; 76 listen 127.0.0.1:8084 ssl;
77 return $ssl_session_reused;
80 78
81 ssl_certificate_key localhost.key; 79 ssl_certificate_key localhost.key;
82 ssl_certificate localhost.crt; 80 ssl_certificate localhost.crt;
83 ssl_session_cache builtin; 81 ssl_session_cache builtin;
84
85 location / {
86 add_header X-Session $ssl_session_reused;
87 }
88 } 82 }
89 } 83 }
90 84
91 EOF 85 EOF
92 86
95 default_bits = 1024 89 default_bits = 1024
96 encrypt_key = no 90 encrypt_key = no
97 distinguished_name = req_distinguished_name 91 distinguished_name = req_distinguished_name
98 [ req_distinguished_name ] 92 [ req_distinguished_name ]
99 EOF 93 EOF
100
101 $t->write_file('index.html', '');
102 94
103 my $d = $t->testdir(); 95 my $d = $t->testdir();
104 96
105 foreach my $name ('localhost') { 97 foreach my $name ('localhost') {
106 system('openssl req -x509 -new ' 98 system('openssl req -x509 -new '
112 104
113 $t->run(); 105 $t->run();
114 106
115 ############################################################################### 107 ###############################################################################
116 108
117 like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl'); 109 is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl');
118 like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), 110 is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl 2');
119 qr/200 OK.*X-Session: \./s, 'ssl 2');
120 111
121 like(http_get('/'), qr/200 OK.*X-Session: \./s, 'ssl reuse session'); 112 is(stream('127.0.0.1:' . port(8081))->read(), '.', 'ssl session new');
122 like(http_get('/', socket => getconn('127.0.0.1:' . port(8081))), 113 is(stream('127.0.0.1:' . port(8081))->read(), 'r', 'ssl session reused');
123 qr/200 OK.*X-Session: r/s, 'ssl reuse session 2');
124 114
125 like(http_get('/', socket => getconn('127.0.0.1:' . port(8082))), 115 is(stream('127.0.0.1:' . port(8082))->read(), '.', 'backup ssl');
126 qr/200 OK.*X-Session: \./s, 'ssl backup'); 116 is(stream('127.0.0.1:' . port(8082))->read(), '.', 'backup ssl 2');
127 like(http_get('/', socket => getconn('127.0.0.1:' . port(8083))),
128 qr/200 OK.*X-Session: \./s, 'ssl backup 2');
129 117
130 like(http_get('/', socket => getconn('127.0.0.1:' . port(8082))), 118 is(stream('127.0.0.1:' . port(8083))->read(), '.', 'backup ssl session new');
131 qr/200 OK.*X-Session: \./s, 'ssl reuse session backup'); 119 is(stream('127.0.0.1:' . port(8083))->read(), 'r', 'backup ssl session reused');
132 like(http_get('/', socket => getconn('127.0.0.1:' . port(8083))),
133 qr/200 OK.*X-Session: r/s, 'ssl reuse session backup 2');
134 120
135 ############################################################################### 121 ###############################################################################
136
137 sub getconn {
138 my $peer = shift;
139 my $s = IO::Socket::INET->new(
140 Proto => 'tcp',
141 PeerAddr => $peer
142 )
143 or die "Can't connect to nginx: $!\n";
144
145 return $s;
146 }
147
148 ###############################################################################