changeset 1864:46351d990aee

Tests: simplified stream SSL tests with IO::Socket::SSL. The stream SSL tests which previously used IO::Socket::SSL were converted to use infrastructure in Test::Nginx::Stream where appropriate.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 18 May 2023 18:07:15 +0300
parents dbb7561a9441
children 0e1865aa9b33
files stream_ssl_alpn.t stream_ssl_preread.t stream_ssl_preread_alpn.t
diffstat 3 files changed, 16 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/stream_ssl_alpn.t
+++ b/stream_ssl_alpn.t
@@ -100,25 +100,12 @@ like($t->read_file('test.log'), qr/500$/
 
 sub get_ssl {
 	my (@alpn) = @_;
-	my $s = stream('127.0.0.1:' . port(8080));
 
-	eval {
-		local $SIG{ALRM} = sub { die "timeout\n" };
-		local $SIG{PIPE} = sub { die "sigpipe\n" };
-		alarm(8);
-		IO::Socket::SSL->start_SSL($s->{_socket},
-			SSL_alpn_protocols => [ @alpn ],
-			SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
-			SSL_error_trap => sub { die $_[1] }
-		);
-		alarm(0);
-	};
-	alarm(0);
-
-	if ($@) {
-		log_in("died: $@");
-		return undef;
-	}
+	my $s = stream(
+		PeerAddr => '127.0.0.1:' . port(8080),
+		SSL => 1,
+		SSL_alpn_protocols => [ @alpn ]
+	);
 
 	return $s->read();
 }
--- a/stream_ssl_preread.t
+++ b/stream_ssl_preread.t
@@ -142,7 +142,7 @@ is(get_ssl('bar', 8081), $p2, 'sni 2 aga
 
 is(get_ssl('', 8081), $p3, 'no sni');
 is(get_ssl('foo', 8082), $p3, 'preread off');
-is(get_ssl('foo', 8083), undef, 'preread buffer full');
+is(get_ssl('foo', 8083), '', 'preread buffer full');
 is(stream('127.0.0.1:' . port(8080))->io('x' x 1000), "127.0.0.1:$p3",
 	'not a handshake');
 
@@ -202,25 +202,12 @@ sub get_oldver {
 
 sub get_ssl {
 	my ($host, $port) = @_;
-	my $s = stream('127.0.0.1:' . port($port));
 
-	eval {
-		local $SIG{ALRM} = sub { die "timeout\n" };
-		local $SIG{PIPE} = sub { die "sigpipe\n" };
-		alarm(8);
-		IO::Socket::SSL->start_SSL($s->{_socket},
-			SSL_hostname => $host,
-			SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
-			SSL_error_trap => sub { die $_[1] }
-		);
-		alarm(0);
-	};
-	alarm(0);
-
-	if ($@) {
-		log_in("died: $@");
-		return undef;
-	}
+	my $s = stream(
+		PeerAddr => '127.0.0.1:' . port($port),
+		SSL => 1,
+		SSL_hostname => $host
+	);
 
 	return $s->read();
 }
--- a/stream_ssl_preread_alpn.t
+++ b/stream_ssl_preread_alpn.t
@@ -114,25 +114,12 @@ get_ssl(8081, '');
 
 sub get_ssl {
 	my ($port, @alpn) = @_;
-	my $s = stream('127.0.0.1:' . port($port));
 
-	eval {
-		local $SIG{ALRM} = sub { die "timeout\n" };
-		local $SIG{PIPE} = sub { die "sigpipe\n" };
-		alarm(8);
-		IO::Socket::SSL->start_SSL($s->{_socket},
-			SSL_alpn_protocols => [ @alpn ],
-			SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
-			SSL_error_trap => sub { die $_[1] }
-		);
-		alarm(0);
-	};
-	alarm(0);
-
-	if ($@) {
-		log_in("died: $@");
-		return undef;
-	}
+	my $s = stream(
+		PeerAddr => '127.0.0.1:' . port($port),
+		SSL => 1,
+		SSL_alpn_protocols => [ @alpn ]
+	);
 
 	return $s->read();
 }