Mercurial > hg > nginx-tests
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 |