Mercurial > hg > nginx-tests
changeset 1921:07656d303199
Tests: adjusted TODO for OpenSSL 1.0.2h and up in h2_http2.t.
OpenSSL uses correct SNI/ALPN callback order (SNI callback before ALPN
callback) starting with OpenSSL 1.0.2h, so "sni to enabled" test
is expected to succeed starting with OpenSSL 1.0.2h.
With this change, the "openssl:..." feature test now supports checking
patch level encoded as letters, such as in "openssl:1.0.2h".
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 12 Jul 2023 02:40:24 +0300 |
parents | 79ca9ab75310 |
children | 97ffd1cf5e21 |
files | h2_http2.t lib/Test/Nginx.pm |
diffstat | 2 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/h2_http2.t Wed Jul 12 02:40:15 2023 +0300 +++ b/h2_http2.t Wed Jul 12 02:40:24 2023 +0300 @@ -151,9 +151,9 @@ TODO: { local $TODO = 'broken ALPN/SNI order in LibreSSL' if $t->has_module('LibreSSL'); -local $TODO = 'OpenSSL too old' +local $TODO = 'broken ALPN/SNI order in OpenSSL before 1.0.2h' if $t->has_module('OpenSSL') - and not $t->has_feature('openssl:1.1.0'); + and not $t->has_feature('openssl:1.0.2h'); is(get_https(8444, 'http2'), 200, 'sni to enabled');
--- a/lib/Test/Nginx.pm Wed Jul 12 02:40:15 2023 +0300 +++ b/lib/Test/Nginx.pm Wed Jul 12 02:40:24 2023 +0300 @@ -266,20 +266,22 @@ return 0; } - if ($feature =~ /^(openssl|libressl):([0-9.]+)/) { + if ($feature =~ /^(openssl|libressl):([0-9.]+)([a-z]*)/) { my $library = $1; my $need = $2; + my $patch = $3; $self->{_configure_args} = `$NGINX -V 2>&1` if !defined $self->{_configure_args}; return 0 unless - $self->{_configure_args} =~ /with $library ([0-9.]+)/i; + $self->{_configure_args} + =~ /with $library ([0-9.]+)([a-z]*)/i; - my @v = split(/\./, $1); + my @v = (split(/\./, $1), unpack("C*", $2)); my ($n, $v); - for $n (split(/\./, $need)) { + for $n (split(/\./, $need), unpack("C*", $patch)) { $v = shift @v || 0; return 0 if $n > $v; return 1 if $v > $n;