[PATCH 5 of 6] Tests: added missing socket_ssl_alpn guard in mail_ssl.t

Maxim Dounin mdounin at mdounin.ru
Tue May 23 02:17:50 UTC 2023


Hello!

On Mon, May 22, 2023 at 11:52:17PM +0400, Sergey Kandaurov wrote:

> # HG changeset patch
> # User Sergey Kandaurov <pluknet at nginx.com>
> # Date 1684784660 -14400
> #      Mon May 22 23:44:20 2023 +0400
> # Node ID 633613b924b957fc18dde972ff346fe92b9e823e
> # Parent  42066e126d2ca0f6d5095d818910559adf5d4bdc
> Tests: added missing socket_ssl_alpn guard in mail_ssl.t.
> 
> diff --git a/mail_ssl.t b/mail_ssl.t
> --- a/mail_ssl.t
> +++ b/mail_ssl.t
> @@ -164,6 +164,10 @@ like($s->socket()->dump_peer_certificate
>  
>  # alpn
>  
> +TODO: {
> +local $TODO = 'no ALPN support in IO::Socket::SSL'
> +	unless $t->has_feature('socket_ssl_alpn');
> +
>  $s = Test::Nginx::IMAP->new(
>  	PeerAddr => '127.0.0.1:' . port(8148),
>  	SSL => 1,
> @@ -171,6 +175,8 @@ like($s->socket()->dump_peer_certificate
>  );
>  $s->ok('alpn');
>  
> +}
> +

This will unexpectedly succeed if IO::Socket:SSL do not have ALPN 
support at all (and will simply ignore SSL_alpn_protocols).

Probably skipping ALPN tests if there is no socket_ssl_alpn is the 
way to go:

diff -r a797d7428fa5 mail_ssl.t
--- a/mail_ssl.t	Thu May 18 18:07:19 2023 +0300
+++ b/mail_ssl.t	Tue May 23 02:17:06 2023 +0000
@@ -164,6 +164,17 @@
 
 # alpn
 
+
+SKIP: {
+skip 'LibreSSL too old', 2
+	if $t->has_module('LibreSSL')
+	and not $t->has_feature('libressl:3.4.0');
+skip 'OpenSSL too old', 2
+	if $t->has_module('OpenSSL')
+	and not $t->has_feature('openssl:1.1.0');
+skip 'no ALPN support in IO::Socket::SSL', 2
+	unless $t->has_feature('socket_ssl_alpn');
+
 $s = Test::Nginx::IMAP->new(
 	PeerAddr => '127.0.0.1:' . port(8148),
 	SSL => 1,
@@ -171,18 +182,8 @@
 );
 $s->ok('alpn');
 
-SKIP: {
-skip 'LibreSSL too old', 1
-	if $t->has_module('LibreSSL')
-	and not $t->has_feature('libressl:3.4.0');
-skip 'OpenSSL too old', 1
-	if $t->has_module('OpenSSL')
-	and not $t->has_feature('openssl:1.1.0');
-
 TODO: {
 local $TODO = 'not yet' unless $t->has_version('1.21.4');
-local $TODO = 'no ALPN support in IO::Socket::SSL'
-	unless $t->has_feature('socket_ssl_alpn');
 
 $s = Test::Nginx::IMAP->new(
 	PeerAddr => '127.0.0.1:' . port(8148),

>  SKIP: {
>  skip 'LibreSSL too old', 1
>  	if $t->has_module('LibreSSL')
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-devel

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx-devel mailing list