aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_ssl_session.rb
diff options
context:
space:
mode:
authorZachary Scott <e@zzak.io>2015-01-06 16:35:02 -0800
committerZachary Scott <e@zzak.io>2015-01-06 16:35:02 -0800
commit8c20f4435f1e09ff797bf6683c47d4a9d1869bca (patch)
tree44a98a14570834e5ecb89b82ced6f796228fff64 /test/test_ssl_session.rb
parent2953dfd4ad925a669110fed1993d6e83b24e420f (diff)
downloadruby-openssl-8c20f4435f1e09ff797bf6683c47d4a9d1869bca.tar.gz
Sync tests with trunk
Diffstat (limited to 'test/test_ssl_session.rb')
-rw-r--r--test/test_ssl_session.rb77
1 files changed, 44 insertions, 33 deletions
diff --git a/test/test_ssl_session.rb b/test/test_ssl_session.rb
index 3e89633f..16432bcb 100644
--- a/test/test_ssl_session.rb
+++ b/test/test_ssl_session.rb
@@ -1,6 +1,6 @@
require_relative "utils"
-if defined?(OpenSSL)
+if defined?(OpenSSL::TestUtils)
class OpenSSL::TestSSLSession < OpenSSL::SSLTestCase
def test_session_equals
@@ -26,23 +26,26 @@ tddwpBAEDjcwMzA5NTYzMTU1MzAwpQMCARM=
-----END SSL SESSION PARAMETERS-----
SESSION
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true) { |_, port|
+ start_server(OpenSSL::SSL::VERIFY_NONE, true, :ignore_listener_error => true) { |_, port|
ctx = OpenSSL::SSL::SSLContext.new
ctx.session_cache_mode = OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT
ctx.session_id_context = self.object_id.to_s
sock = TCPSocket.new '127.0.0.1', port
- ssl = OpenSSL::SSL::SSLSocket.new sock, ctx
- ssl.session = session
+ begin
+ ssl = OpenSSL::SSL::SSLSocket.new sock, ctx
+ ssl.session = session
- assert_equal session, ssl.session
- sock.close
+ assert_equal session, ssl.session
+ ensure
+ sock.close
+ end
}
end
def test_session
timeout(5) do
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true) do |server, port|
+ start_server(OpenSSL::SSL::VERIFY_NONE, true) do |server, port|
sock = TCPSocket.new("127.0.0.1", port)
ctx = OpenSSL::SSL::SSLContext.new("TLSv1")
ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
@@ -153,7 +156,7 @@ __EOS__
def test_client_session
last_session = nil
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true) do |server, port|
+ start_server(OpenSSL::SSL::VERIFY_NONE, true) do |server, port|
2.times do
sock = TCPSocket.new("127.0.0.1", port)
# Debian's openssl 0.9.8g-13 failed at assert(ssl.session_reused?),
@@ -239,7 +242,7 @@ __EOS__
end
first_session = nil
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true, :ctx_proc => ctx_proc, :server_proc => server_proc) do |server, port|
+ start_server(OpenSSL::SSL::VERIFY_NONE, true, :ctx_proc => ctx_proc, :server_proc => server_proc) do |server, port|
10.times do |i|
sock = TCPSocket.new("127.0.0.1", port)
ctx = OpenSSL::SSL::SSLContext.new
@@ -275,7 +278,7 @@ __EOS__
def test_ctx_client_session_cb
called = {}
- ctx = OpenSSL::SSL::SSLContext.new("SSLv3")
+ ctx = OpenSSL::SSL::SSLContext.new
ctx.session_cache_mode = OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT
ctx.session_new_cb = lambda { |ary|
@@ -289,18 +292,22 @@ __EOS__
# any resulting value is OK (ignored)
}
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true) do |server, port|
+ start_server(OpenSSL::SSL::VERIFY_NONE, true) do |server, port|
sock = TCPSocket.new("127.0.0.1", port)
- ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
- ssl.sync_close = true
- ssl.connect
- assert_equal(1, ctx.session_cache_stats[:cache_num])
- assert_equal(1, ctx.session_cache_stats[:connect_good])
- assert_equal([ssl, ssl.session], called[:new])
- assert(ctx.session_remove(ssl.session))
- assert(!ctx.session_remove(ssl.session))
- assert_equal([ctx, ssl.session], called[:remove])
- ssl.close
+ begin
+ ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
+ ssl.sync_close = true
+ ssl.connect
+ assert_equal(1, ctx.session_cache_stats[:cache_num])
+ assert_equal(1, ctx.session_cache_stats[:connect_good])
+ assert_equal([ssl, ssl.session], called[:new])
+ assert(ctx.session_remove(ssl.session))
+ assert(!ctx.session_remove(ssl.session))
+ assert_equal([ctx, ssl.session], called[:remove])
+ ssl.close
+ ensure
+ sock.close if !sock.closed?
+ end
end
end
@@ -343,21 +350,25 @@ __EOS__
c.session_cache_stats
readwrite_loop(c, ssl)
}
- start_server(PORT, OpenSSL::SSL::VERIFY_NONE, true, :ctx_proc => ctx_proc, :server_proc => server_proc) do |server, port|
+ start_server(OpenSSL::SSL::VERIFY_NONE, true, :ctx_proc => ctx_proc, :server_proc => server_proc) do |server, port|
last_client_session = nil
3.times do
sock = TCPSocket.new("127.0.0.1", port)
- ssl = OpenSSL::SSL::SSLSocket.new(sock, OpenSSL::SSL::SSLContext.new("SSLv3"))
- ssl.sync_close = true
- ssl.session = last_client_session if last_client_session
- ssl.connect
- last_client_session = ssl.session
- ssl.close
- timeout(5) do
- Thread.pass until called.key?(:new)
- assert(called.delete(:new))
- Thread.pass until called.key?(:remove)
- assert(called.delete(:remove))
+ begin
+ ssl = OpenSSL::SSL::SSLSocket.new(sock, OpenSSL::SSL::SSLContext.new("SSLv3"))
+ ssl.sync_close = true
+ ssl.session = last_client_session if last_client_session
+ ssl.connect
+ last_client_session = ssl.session
+ ssl.close
+ timeout(5) do
+ Thread.pass until called.key?(:new)
+ assert(called.delete(:new))
+ Thread.pass until called.key?(:remove)
+ assert(called.delete(:remove))
+ end
+ ensure
+ sock.close if !sock.closed?
end
end
end