Skip to content

Commit

Permalink
CI: test_integration_ssl_session.rb - wait for session callback (puma…
Browse files Browse the repository at this point in the history
  • Loading branch information
MSP-Greg committed Jun 6, 2024
1 parent 72e0aca commit eeea0c5
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions test/test_integration_ssl_session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ def test_off_tls1_3
assert reused, 'TLSv1.3 session was not reused'
end

def client_skt(tls_vers = nil, session_pems = [])
def client_skt(tls_vers = nil, session_pems = [], queue = nil)
ctx = OSSL::SSLContext.new
ctx.verify_mode = OSSL::VERIFY_NONE
ctx.session_cache_mode = OSSL::SSLContext::SESSION_CACHE_CLIENT
Expand All @@ -149,22 +149,27 @@ def client_skt(tls_vers = nil, session_pems = [])
ctx.ssl_version = tls_vers.to_s.sub('TLS', 'TLSv').to_sym
end
end
ctx.session_new_cb = ->(ary) { session_pems << ary.last.to_pem }
ctx.session_new_cb = ->(ary) {
queue << true if queue
session_pems << ary.last.to_pem
}

skt = OSSL::SSLSocket.new TCPSocket.new(HOST, bind_port), ctx
skt.sync_close = true
skt
end

def ssl_client(tls_vers: nil)
queue = Thread::Queue.new
session_pems = []
skt = client_skt tls_vers, session_pems
skt = client_skt tls_vers, session_pems, queue
skt.connect

skt.syswrite GET
skt.to_io.wait_readable 2
assert_equal RESP, skt.sysread(1_024)
skt.sysclose
queue.pop # wait for cb session to be added to first client

skt = client_skt tls_vers, session_pems
skt.session = OSSL::Session.new(session_pems[0])
Expand All @@ -173,6 +178,8 @@ def ssl_client(tls_vers: nil)
skt.syswrite GET
skt.to_io.wait_readable 2
assert_equal RESP, skt.sysread(1_024)
queue.close
queue = nil

skt.session_reused?
ensure
Expand Down

0 comments on commit eeea0c5

Please sign in to comment.