comparison stream_ssl.t @ 952:e9064d691790

Tests: converted tests to run in parallel.
author Andrey Zelenkov <zelenkov@nginx.com>
date Tue, 21 Jun 2016 16:39:13 +0300
parents f4189a38c3a4
children 882267679006
comparison
equal deleted inserted replaced
951:9361c7eddfc1 952:e9064d691790
51 51
52 # inherited by server "inherits" 52 # inherited by server "inherits"
53 ssl_password_file password_http; 53 ssl_password_file password_http;
54 54
55 server { 55 server {
56 listen 127.0.0.1:8080 ssl; 56 listen 127.0.0.1:%%PORT_0%% ssl;
57 proxy_pass 127.0.0.1:8081; 57 proxy_pass 127.0.0.1:%%PORT_1%%;
58 58
59 ssl_session_cache builtin; 59 ssl_session_cache builtin;
60 ssl_password_file password; 60 ssl_password_file password;
61 } 61 }
62 62
63 server { 63 server {
64 listen 127.0.0.1:8082 ssl; 64 listen 127.0.0.1:%%PORT_2%% ssl;
65 proxy_pass 127.0.0.1:8081; 65 proxy_pass 127.0.0.1:%%PORT_1%%;
66 66
67 ssl_session_cache off; 67 ssl_session_cache off;
68 ssl_password_file password_many; 68 ssl_password_file password_many;
69 } 69 }
70 70
71 server { 71 server {
72 listen 127.0.0.1:8083 ssl; 72 listen 127.0.0.1:%%PORT_3%% ssl;
73 proxy_pass 127.0.0.1:8081; 73 proxy_pass 127.0.0.1:%%PORT_1%%;
74 74
75 ssl_session_cache builtin:1000; 75 ssl_session_cache builtin:1000;
76 ssl_password_file password_fifo; 76 ssl_password_file password_fifo;
77 } 77 }
78 78
79 server { 79 server {
80 listen 127.0.0.1:8084 ssl; 80 listen 127.0.0.1:%%PORT_4%% ssl;
81 proxy_pass 127.0.0.1:8081; 81 proxy_pass 127.0.0.1:%%PORT_1%%;
82 82
83 ssl_session_cache shared:SSL:1m; 83 ssl_session_cache shared:SSL:1m;
84 ssl_certificate_key inherits.key; 84 ssl_certificate_key inherits.key;
85 ssl_certificate inherits.crt; 85 ssl_certificate inherits.crt;
86 } 86 }
121 fork() || exec("echo localhost > $d/password_fifo"); 121 fork() || exec("echo localhost > $d/password_fifo");
122 122
123 $t->run_daemon(\&http_daemon); 123 $t->run_daemon(\&http_daemon);
124 $t->run(); 124 $t->run();
125 125
126 $t->waitforsocket('127.0.0.1:8081'); 126 $t->waitforsocket('127.0.0.1:' . port(1));
127 127
128 ############################################################################### 128 ###############################################################################
129 129
130 my ($s, $ssl, $ses); 130 my ($s, $ssl, $ses);
131 131
132 ($s, $ssl) = get_ssl_socket(8080); 132 ($s, $ssl) = get_ssl_socket(port(0));
133 Net::SSLeay::write($ssl, "GET / HTTP/1.0$CRLF$CRLF"); 133 Net::SSLeay::write($ssl, "GET / HTTP/1.0$CRLF$CRLF");
134 like(Net::SSLeay::read($ssl), qr/200 OK/, 'ssl'); 134 like(Net::SSLeay::read($ssl), qr/200 OK/, 'ssl');
135 135
136 # ssl_session_cache 136 # ssl_session_cache
137 137
138 ($s, $ssl) = get_ssl_socket(8080); 138 ($s, $ssl) = get_ssl_socket(port(0));
139 $ses = Net::SSLeay::get_session($ssl); 139 $ses = Net::SSLeay::get_session($ssl);
140 140
141 ($s, $ssl) = get_ssl_socket(8080, $ses); 141 ($s, $ssl) = get_ssl_socket(port(0), $ses);
142 is(Net::SSLeay::session_reused($ssl), 1, 'builtin session reused'); 142 is(Net::SSLeay::session_reused($ssl), 1, 'builtin session reused');
143 143
144 ($s, $ssl) = get_ssl_socket(8082); 144 ($s, $ssl) = get_ssl_socket(port(2));
145 $ses = Net::SSLeay::get_session($ssl); 145 $ses = Net::SSLeay::get_session($ssl);
146 146
147 ($s, $ssl) = get_ssl_socket(8082, $ses); 147 ($s, $ssl) = get_ssl_socket(port(2), $ses);
148 isnt(Net::SSLeay::session_reused($ssl), 1, 'session not reused'); 148 isnt(Net::SSLeay::session_reused($ssl), 1, 'session not reused');
149 149
150 ($s, $ssl) = get_ssl_socket(8083); 150 ($s, $ssl) = get_ssl_socket(port(3));
151 $ses = Net::SSLeay::get_session($ssl); 151 $ses = Net::SSLeay::get_session($ssl);
152 152
153 ($s, $ssl) = get_ssl_socket(8083, $ses); 153 ($s, $ssl) = get_ssl_socket(port(3), $ses);
154 is(Net::SSLeay::session_reused($ssl), 1, 'builtin size session reused'); 154 is(Net::SSLeay::session_reused($ssl), 1, 'builtin size session reused');
155 155
156 ($s, $ssl) = get_ssl_socket(8084); 156 ($s, $ssl) = get_ssl_socket(port(4));
157 $ses = Net::SSLeay::get_session($ssl); 157 $ses = Net::SSLeay::get_session($ssl);
158 158
159 ($s, $ssl) = get_ssl_socket(8084, $ses); 159 ($s, $ssl) = get_ssl_socket(port(4), $ses);
160 is(Net::SSLeay::session_reused($ssl), 1, 'shared session reused'); 160 is(Net::SSLeay::session_reused($ssl), 1, 'shared session reused');
161 161
162 # ssl_certificate inheritance 162 # ssl_certificate inheritance
163 163
164 ($s, $ssl) = get_ssl_socket(8080); 164 ($s, $ssl) = get_ssl_socket(port(0));
165 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=localhost/, 'CN'); 165 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=localhost/, 'CN');
166 166
167 ($s, $ssl) = get_ssl_socket(8084); 167 ($s, $ssl) = get_ssl_socket(port(4));
168 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=inherits/, 'CN inner'); 168 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=inherits/, 'CN inner');
169 169
170 ############################################################################### 170 ###############################################################################
171 171
172 sub get_ssl_socket { 172 sub get_ssl_socket {
173 my ($port, $ses) = @_; 173 my ($port, $ses) = @_;
174 my $s; 174 my $s;
175 175
176 my $dest_ip = inet_aton('127.0.0.1'); 176 my $dest_ip = inet_aton('127.0.0.1');
177 my $dest_serv_params = sockaddr_in($port || 8080, $dest_ip); 177 my $dest_serv_params = sockaddr_in($port, $dest_ip);
178 178
179 socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!"; 179 socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
180 connect($s, $dest_serv_params) or die "connect: $!"; 180 connect($s, $dest_serv_params) or die "connect: $!";
181 181
182 my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!"); 182 my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
189 ############################################################################### 189 ###############################################################################
190 190
191 sub http_daemon { 191 sub http_daemon {
192 my $server = IO::Socket::INET->new( 192 my $server = IO::Socket::INET->new(
193 Proto => 'tcp', 193 Proto => 'tcp',
194 LocalHost => '127.0.0.1:8081', 194 LocalHost => '127.0.0.1:' . port(1),
195 Listen => 5, 195 Listen => 5,
196 Reuse => 1 196 Reuse => 1
197 ) 197 )
198 or die "Can't create listening socket: $!\n"; 198 or die "Can't create listening socket: $!\n";
199 199