aboutsummaryrefslogtreecommitdiffstats
path: root/community/ruby-eventmachine/0003-Move-console-SSL-Info-code-to-em_test_helper.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/ruby-eventmachine/0003-Move-console-SSL-Info-code-to-em_test_helper.patch')
-rw-r--r--community/ruby-eventmachine/0003-Move-console-SSL-Info-code-to-em_test_helper.patch224
1 files changed, 224 insertions, 0 deletions
diff --git a/community/ruby-eventmachine/0003-Move-console-SSL-Info-code-to-em_test_helper.patch b/community/ruby-eventmachine/0003-Move-console-SSL-Info-code-to-em_test_helper.patch
new file mode 100644
index 00000000000..228c7767303
--- /dev/null
+++ b/community/ruby-eventmachine/0003-Move-console-SSL-Info-code-to-em_test_helper.patch
@@ -0,0 +1,224 @@
+From fc95df7a31ae5694f6a762c0c3d4f5c79c3ee40b Mon Sep 17 00:00:00 2001
+From: MSP-Greg <greg.mpls@gmail.com>
+Date: Sun, 13 Jan 2019 16:10:30 -0600
+Subject: [PATCH] Remove some old Ruby version code, Travis to xenial (only
+ TLS, no SSL)
+
+Move console 'SSL Info' code to em_test_helper.rb
+Prev code assumed SSLv3 was available, newer OpenSSL versions are often built without
+---
+ tests/em_test_helper.rb | 27 +++++++++++++++++++--
+ tests/test_ssl_protocols.rb | 46 +++++++++++++------------------------
+ 2 files changed, 41 insertions(+), 32 deletions(-)
+
+Patch-Source: https://src.fedoraproject.org/rpms/rubygem-eventmachine/blob/f34/f/rubygem-eventmachine-1.2.7-Move-console-SSL-Info-code-to-em_test_helper.patch
+Upstream-Issue: https://github.com/eventmachine/eventmachine/pull/867
+
+diff --git a/tests/em_test_helper.rb b/tests/em_test_helper.rb
+index eb322482..2682849c 100644
+--- a/tests/em_test_helper.rb
++++ b/tests/em_test_helper.rb
+@@ -4,9 +4,32 @@
+ require 'rbconfig'
+ require 'socket'
+
+-puts "EM Library Type: #{EM.library_type}"
+-
+ class Test::Unit::TestCase
++
++ # below outputs in to console on load
++ # SSL_AVAIL is used by SSL tests
++ puts "", RUBY_DESCRIPTION
++ puts "\nEM.library_type #{EM.library_type.to_s.ljust(16)} EM.ssl? #{EM.ssl?}"
++ if EM.ssl?
++ require 'openssl'
++ ssl_lib_vers = OpenSSL.const_defined?(:OPENSSL_LIBRARY_VERSION) ?
++ OpenSSL::OPENSSL_LIBRARY_VERSION : 'na'
++ puts "OpenSSL OPENSSL_LIBRARY_VERSION: #{ssl_lib_vers}\n" \
++ " OPENSSL_VERSION: #{OpenSSL::OPENSSL_VERSION}\n" \
++ " EM OPENSSL_LIBRARY_VERSION: #{EM::OPENSSL_LIBRARY_VERSION}\n" \
++ " OPENSSL_VERSION: #{EM::OPENSSL_VERSION}"
++
++ # assumes all 2.x versions include support for TLSv1_2
++ temp = []
++ temp << 'SSLv2' unless EM::OPENSSL_NO_SSL2
++ temp << 'SSLv3' unless EM::OPENSSL_NO_SSL3
++ temp += %w[TLSv1 TLSv1_1 TLSv1_2]
++ temp << 'TLSv1_3' if EM.const_defined? :EM_PROTO_TLSv1_3
++ temp.sort!
++ puts " SSL_AVAIL: #{temp.join(' ')}", ""
++ SSL_AVAIL = temp.freeze
++ end
++
+ class EMTestTimeout < StandardError ; end
+
+ def setup_timeout(timeout = TIMEOUT_INTERVAL)
+diff --git a/tests/test_ssl_protocols.rb b/tests/test_ssl_protocols.rb
+index 181abbc3..96c57c23 100644
+--- a/tests/test_ssl_protocols.rb
++++ b/tests/test_ssl_protocols.rb
+@@ -6,20 +6,6 @@
+ if EM.ssl?
+ class TestSslProtocols < Test::Unit::TestCase
+
+- # equal to base METHODS, downcased, like ["tlsv1, "tlsv1_1", "tlsv1_2"]
+- if RUBY_VERSION == "1.8.7"
+- SSL_AVAIL = ["sslv3", "tlsv1"]
+- else
+- SSL_AVAIL = ::OpenSSL::SSL::SSLContext::METHODS.select { |i| i =~ /[^\d]\d\z/ }.map { |i| i.to_s.downcase }
+- end
+-
+- libr_vers = OpenSSL.const_defined?(:OPENSSL_LIBRARY_VERSION) ?
+- OpenSSL::OPENSSL_VERSION : 'na'
+-
+- puts "OPENSSL_LIBRARY_VERSION: #{libr_vers}\n" \
+- " OPENSSL_VERSION: #{OpenSSL::OPENSSL_VERSION}\n" \
+- " SSL_AVAIL: #{SSL_AVAIL.join(' ')}"
+-
+ module Client
+ def ssl_handshake_completed
+ $client_handshake_completed = true
+@@ -40,7 +25,7 @@ def ssl_handshake_completed
+ module ClientAny
+ include Client
+ def post_init
+- start_tls(:ssl_version => SSL_AVAIL)
++ start_tls(:ssl_version => TestSslProtocols::SSL_AVAIL)
+ end
+ end
+
+@@ -89,7 +74,7 @@ def post_init
+ module ServerAny
+ include Server
+ def post_init
+- start_tls(:ssl_version => SSL_AVAIL)
++ start_tls(:ssl_version => TestSslProtocols::SSL_AVAIL)
+ end
+ end
+
+@@ -117,7 +102,7 @@ def test_invalid_ssl_version
+ end
+
+ def test_any_to_v3
+- omit("SSLv3 is (correctly) unavailable") unless SSL_AVAIL.include? "sslv3"
++ omit("SSLv3 is (correctly) unavailable") if EM::OPENSSL_NO_SSL3
+ $client_handshake_completed, $server_handshake_completed = false, false
+ EM.run do
+ EM.start_server("127.0.0.1", 16784, ServerSSLv3)
+@@ -129,7 +114,7 @@ def test_any_to_v3
+ end
+
+ def test_any_to_tlsv1_2
+- omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "tlsv1_2"
++ omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "TLSv1_2"
+ $client_handshake_completed, $server_handshake_completed = false, false
+ EM.run do
+ EM.start_server("127.0.0.1", 16784, ServerTLSv1_2)
+@@ -152,7 +137,7 @@ def test_case_insensitivity
+ end
+
+ def test_v3_to_any
+- omit("SSLv3 is (correctly) unavailable") unless SSL_AVAIL.include? "sslv3"
++ omit("SSLv3 is (correctly) unavailable") if EM::OPENSSL_NO_SSL3
+ $client_handshake_completed, $server_handshake_completed = false, false
+ EM.run do
+ EM.start_server("127.0.0.1", 16784, ServerAny)
+@@ -164,7 +149,7 @@ def test_v3_to_any
+ end
+
+ def test_tlsv1_2_to_any
+- omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "tlsv1_2"
++ omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "TLSv1_2"
+ $client_handshake_completed, $server_handshake_completed = false, false
+ EM.run do
+ EM.start_server("127.0.0.1", 16784, ServerAny)
+@@ -176,7 +161,7 @@ def test_tlsv1_2_to_any
+ end
+
+ def test_v3_to_v3
+- omit("SSLv3 is (correctly) unavailable") unless SSL_AVAIL.include? "sslv3"
++ omit("SSLv3 is (correctly) unavailable") if EM::OPENSSL_NO_SSL3
+ $client_handshake_completed, $server_handshake_completed = false, false
+ EM.run do
+ EM.start_server("127.0.0.1", 16784, ServerSSLv3)
+@@ -188,7 +173,7 @@ def test_v3_to_v3
+ end
+
+ def test_tlsv1_2_to_tlsv1_2
+- omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "tlsv1_2"
++ omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "TLSv1_2"
+ $client_handshake_completed, $server_handshake_completed = false, false
+ EM.run do
+ EM.start_server("127.0.0.1", 16784, ServerTLSv1_2)
+@@ -245,7 +230,7 @@ def ssl_handshake_completed
+
+ module ServerAnyStopAfterHandshake
+ def post_init
+- start_tls(:ssl_version => SSL_AVAIL)
++ start_tls(:ssl_version => TestSslProtocols::SSL_AVAIL)
+ end
+
+ def ssl_handshake_completed
+@@ -255,7 +240,7 @@ def ssl_handshake_completed
+ end
+
+ def test_v3_with_external_client
+- omit("SSLv3 is (correctly) unavailable") unless SSL_AVAIL.include? "sslv3"
++ omit("SSLv3 is (correctly) unavailable") if EM::OPENSSL_NO_SSL3
+ $server_handshake_completed = false
+ EM.run do
+ setup_timeout(2)
+@@ -276,7 +261,7 @@ def test_v3_with_external_client
+
+ # Fixed Server
+ def test_tlsv1_2_with_external_client
+- omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "tlsv1_2"
++ omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "TLSv1_2"
+ $server_handshake_completed = false
+ EM.run do
+ setup_timeout(2)
+@@ -284,7 +269,7 @@ def test_tlsv1_2_with_external_client
+ EM.defer do
+ sock = TCPSocket.new("127.0.0.1", 16784)
+ ctx = OpenSSL::SSL::SSLContext.new
+- ctx.ssl_version = :SSLv23_client
++ ctx.ssl_version = :SSLv23
+ ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
+ ssl.connect
+ ssl.close rescue nil
+@@ -297,7 +282,7 @@ def test_tlsv1_2_with_external_client
+
+ # Fixed Client
+ def test_any_with_external_client_tlsv1_2
+- omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "tlsv1_2"
++ omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "TLSv1_2"
+ $server_handshake_completed = false
+ EM.run do
+ setup_timeout(2)
+@@ -305,7 +290,7 @@ def test_any_with_external_client_tlsv1_2
+ EM.defer do
+ sock = TCPSocket.new("127.0.0.1", 16784)
+ ctx = OpenSSL::SSL::SSLContext.new
+- ctx.ssl_version = :TLSv1_2_client
++ ctx.ssl_version = :TLSv1_2
+ ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
+ ssl.connect
+ ssl.close rescue nil
+@@ -318,7 +303,7 @@ def test_any_with_external_client_tlsv1_2
+
+ # Refuse a client?
+ def test_tlsv1_2_required_with_external_client
+- omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "tlsv1_2"
++ omit("TLSv1_2 is unavailable") unless SSL_AVAIL.include? "TLSv1_2"
+ $server_handshake_completed = false
+ EM.run do
+ n = 0
+@@ -330,7 +315,7 @@ def test_tlsv1_2_required_with_external_client
+ EM.defer do
+ sock = TCPSocket.new("127.0.0.1", 16784)
+ ctx = OpenSSL::SSL::SSLContext.new
+- ctx.ssl_version = :TLSv1_client
++ ctx.ssl_version = :TLSv1
+ ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
+ assert_raise(OpenSSL::SSL::SSLError) { ssl.connect }
+ ssl.close rescue nil