From a48c088390c354a606088ab61e560599d0210982 Mon Sep 17 00:00:00 2001 From: MSP-Greg Date: Sun, 13 Sep 2020 15:25:58 -0500 Subject: [PATCH] TestPumaServerSSLClient - share Context --- test/test_puma_server_ssl.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/test/test_puma_server_ssl.rb b/test/test_puma_server_ssl.rb index 09423b663b..0481e45f39 100644 --- a/test/test_puma_server_ssl.rb +++ b/test/test_puma_server_ssl.rb @@ -255,13 +255,8 @@ class TestPumaServerSSLClient < Minitest::Test CERT_PATH = File.expand_path "../examples/puma/client-certs", __dir__ - def assert_ssl_client_error_match(error, subject=nil, &blk) - host = "localhost" - port = 0 - - app = lambda { |env| [200, {}, [env['rack.url_scheme']]] } - - ctx = Puma::MiniSSL::Context.new + # Context can be shared, may help with JRuby + CTX = Puma::MiniSSL::Context.new.tap { |ctx| if Puma.jruby? ctx.keystore = "#{CERT_PATH}/keystore.jks" ctx.keystore_pass = 'jruby_puma' @@ -271,10 +266,17 @@ def assert_ssl_client_error_match(error, subject=nil, &blk) ctx.ca = "#{CERT_PATH}/ca.crt" end ctx.verify_mode = Puma::MiniSSL::VERIFY_PEER | Puma::MiniSSL::VERIFY_FAIL_IF_NO_PEER_CERT + } + + def assert_ssl_client_error_match(error, subject=nil, &blk) + host = "localhost" + port = 0 + + app = lambda { |env| [200, {}, [env['rack.url_scheme']]] } events = SSLEventsHelper.new STDOUT, STDERR server = Puma::Server.new app, events - server.add_ssl_listener host, port, ctx + server.add_ssl_listener host, port, CTX host_addrs = server.binder.ios.map { |io| io.to_io.addr[2] } server.run