summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/test_ssl.rb22
-rw-r--r--test/utils.rb17
2 files changed, 15 insertions, 24 deletions
diff --git a/test/test_ssl.rb b/test/test_ssl.rb
index 418365a4..3917793e 100644
--- a/test/test_ssl.rb
+++ b/test/test_ssl.rb
@@ -206,21 +206,16 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase
def test_starttls
server_proc = -> (ctx, ssl) {
- begin
- while line = ssl.gets
- if line =~ /^STARTTLS$/
- ssl.write("x")
- ssl.flush
- ssl.accept
- next
- end
- ssl.write(line)
+ while line = ssl.gets
+ if line =~ /^STARTTLS$/
+ ssl.write("x")
+ ssl.flush
+ ssl.accept
+ break
end
- rescue OpenSSL::SSL::SSLError
- rescue IOError
- ensure
- ssl.close rescue nil
+ ssl.write(line)
end
+ readwrite_loop(ctx, ssl)
}
EnvUtil.suppress_warning do # read/write on not started session
@@ -763,7 +758,6 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase
cmp.force_encoding(Encoding::UTF_8)
assert_equal(str, cmp)
assert_equal(num_written, raw_size)
- ssl.close
}
start_server(server_proc: server_proc) { |port|
server_connect(port) { |ssl|
diff --git a/test/utils.rb b/test/utils.rb
index 2f2701af..8038db7c 100644
--- a/test/utils.rb
+++ b/test/utils.rb
@@ -176,10 +176,6 @@ class OpenSSL::SSLTestCase < OpenSSL::TestCase
while line = ssl.gets
ssl.write(line)
end
- rescue OpenSSL::SSL::SSLError
- rescue IOError
- ensure
- ssl.close rescue nil
end
def server_loop(ctx, ssls, stop_pipe_r, ignore_listener_error, server_proc, threads)
@@ -191,7 +187,8 @@ class OpenSSL::SSLTestCase < OpenSSL::TestCase
return
end
ssl = ssls.accept
- rescue OpenSSL::SSL::SSLError, Errno::ECONNRESET
+ rescue OpenSSL::SSL::SSLError, IOError, Errno::EBADF, Errno::EINVAL,
+ Errno::ECONNABORTED, Errno::ENOTSOCK, Errno::ECONNRESET
if ignore_listener_error
retry
else
@@ -200,14 +197,14 @@ class OpenSSL::SSLTestCase < OpenSSL::TestCase
end
th = Thread.start do
- server_proc.call(ctx, ssl)
+ begin
+ server_proc.call(ctx, ssl)
+ ensure
+ ssl.close
+ end
end
threads << th
end
- rescue Errno::EBADF, IOError, Errno::EINVAL, Errno::ECONNABORTED, Errno::ENOTSOCK, Errno::ECONNRESET
- if !ignore_listener_error
- raise
- end
end
def start_server(verify_mode: OpenSSL::SSL::VERIFY_NONE, start_immediately: true,