comparison h2_ssl_variables.t @ 1033:45c80276d691

Tests: unbreak for nginx built with OpenSSL without NPN/ALPN.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 14 Sep 2016 19:38:13 +0300
parents de513b115e68
children 8ef51dbb5d69
comparison
equal deleted inserted replaced
1032:43eedbfea090 1033:45c80276d691
91 91
92 ############################################################################### 92 ###############################################################################
93 93
94 my ($s, $sid, $frames, $frame); 94 my ($s, $sid, $frames, $frame);
95 95
96 my $has_npn = eval { Test::Nginx::HTTP2::new_socket(port(8080), SSL => 1,
97 npn => 'h2')->next_proto_negotiated() };
98 my $has_alpn = eval { Test::Nginx::HTTP2::new_socket(port(8080), SSL => 1,
99 alpn => 'h2')->alpn_selected() };
100
96 # SSL/TLS connection, NPN 101 # SSL/TLS connection, NPN
97 102
98 SKIP: { 103 SKIP: {
99 eval { IO::Socket::SSL->can_npn() or die; }; 104 skip 'OpenSSL NPN support required', 1 unless $has_npn;
100 skip 'OpenSSL NPN support required', 1 if $@;
101 105
102 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2'); 106 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2');
103 $sid = $s->new_stream({ path => '/h2' }); 107 $sid = $s->new_stream({ path => '/h2' });
104 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 108 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
105 109
109 } 113 }
110 114
111 # SSL/TLS connection, ALPN 115 # SSL/TLS connection, ALPN
112 116
113 SKIP: { 117 SKIP: {
114 eval { IO::Socket::SSL->can_alpn() or die; }; 118 skip 'OpenSSL ALPN support required', 1 unless $has_alpn;
115 skip 'OpenSSL ALPN support required', 1 if $@;
116 119
117 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2'); 120 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2');
118 $sid = $s->new_stream({ path => '/h2' }); 121 $sid = $s->new_stream({ path => '/h2' });
119 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 122 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
120 123
124 } 127 }
125 128
126 # $server_protocol - SSL/TLS connection, NPN 129 # $server_protocol - SSL/TLS connection, NPN
127 130
128 SKIP: { 131 SKIP: {
129 eval { IO::Socket::SSL->can_npn() or die; }; 132 skip 'OpenSSL NPN support required', 1 unless $has_npn;
130 skip 'OpenSSL NPN support required', 1 if $@;
131 133
132 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2'); 134 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2');
133 $sid = $s->new_stream({ path => '/sp' }); 135 $sid = $s->new_stream({ path => '/sp' });
134 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 136 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
135 137
139 } 141 }
140 142
141 # $server_protocol - SSL/TLS connection, ALPN 143 # $server_protocol - SSL/TLS connection, ALPN
142 144
143 SKIP: { 145 SKIP: {
144 eval { IO::Socket::SSL->can_alpn() or die; }; 146 skip 'OpenSSL ALPN support required', 1 unless $has_alpn;
145 skip 'OpenSSL ALPN support required', 1 if $@;
146 147
147 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2'); 148 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2');
148 $sid = $s->new_stream({ path => '/sp' }); 149 $sid = $s->new_stream({ path => '/sp' });
149 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 150 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
150 151
154 } 155 }
155 156
156 # $scheme - SSL/TLS connection, NPN 157 # $scheme - SSL/TLS connection, NPN
157 158
158 SKIP: { 159 SKIP: {
159 eval { IO::Socket::SSL->can_npn() or die; }; 160 skip 'OpenSSL NPN support required', 1 unless $has_npn;
160 skip 'OpenSSL NPN support required', 1 if $@;
161 161
162 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2'); 162 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2');
163 $sid = $s->new_stream({ path => '/scheme' }); 163 $sid = $s->new_stream({ path => '/scheme' });
164 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 164 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
165 165
169 } 169 }
170 170
171 # $scheme - SSL/TLS connection, ALPN 171 # $scheme - SSL/TLS connection, ALPN
172 172
173 SKIP: { 173 SKIP: {
174 eval { IO::Socket::SSL->can_alpn() or die; }; 174 skip 'OpenSSL ALPN support required', 1 unless $has_alpn;
175 skip 'OpenSSL ALPN support required', 1 if $@;
176 175
177 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2'); 176 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2');
178 $sid = $s->new_stream({ path => '/scheme' }); 177 $sid = $s->new_stream({ path => '/scheme' });
179 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 178 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
180 179
184 } 183 }
185 184
186 # $https - SSL/TLS connection, NPN 185 # $https - SSL/TLS connection, NPN
187 186
188 SKIP: { 187 SKIP: {
189 eval { IO::Socket::SSL->can_npn() or die; }; 188 skip 'OpenSSL NPN support required', 1 unless $has_npn;
190 skip 'OpenSSL NPN support required', 1 if $@;
191 189
192 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2'); 190 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, npn => 'h2');
193 $sid = $s->new_stream({ path => '/https' }); 191 $sid = $s->new_stream({ path => '/https' });
194 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 192 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
195 193
199 } 197 }
200 198
201 # $https - SSL/TLS connection, ALPN 199 # $https - SSL/TLS connection, ALPN
202 200
203 SKIP: { 201 SKIP: {
204 eval { IO::Socket::SSL->can_alpn() or die; }; 202 skip 'OpenSSL ALPN support required', 1 unless $has_alpn;
205 skip 'OpenSSL ALPN support required', 1 if $@;
206 203
207 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2'); 204 $s = Test::Nginx::HTTP2->new(port(8080), SSL => 1, alpn => 'h2');
208 $sid = $s->new_stream({ path => '/https' }); 205 $sid = $s->new_stream({ path => '/https' });
209 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); 206 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
210 207