summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-07 23:21:10 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-07 23:21:10 +0000
commitb9f770ae8ffe2c5f83b5f411534c6d5c2f687345 (patch)
tree7dde624b7266de96defa84005fa94b557fd4b526
parent87083e761bb70956c6b904d19da1c6a4fa9064df (diff)
refactored to test Socket and TCPSocket/TCPServer more consistently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--test/openssl/test_pair.rb128
1 files changed, 54 insertions, 74 deletions
diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb
index 70ea47da75..f627066d76 100644
--- a/test/openssl/test_pair.rb
+++ b/test/openssl/test_pair.rb
@@ -5,14 +5,14 @@ if defined?(OpenSSL)
require 'socket'
require_relative '../ruby/ut_eof'
-module SSLPair
+module OpenSSL::SSLPairM
def server
host = "127.0.0.1"
port = 0
ctx = OpenSSL::SSL::SSLContext.new()
ctx.ciphers = "ADH"
ctx.tmp_dh_callback = proc { OpenSSL::TestUtils::TEST_KEY_DH1024 }
- tcps = TCPServer.new(host, port)
+ tcps = create_tcp_server(host, port)
ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
return ssls
end
@@ -21,7 +21,7 @@ module SSLPair
host = "127.0.0.1"
ctx = OpenSSL::SSL::SSLContext.new()
ctx.ciphers = "ADH"
- s = TCPSocket.new(host, port)
+ s = create_tcp_client(host, port)
ssl = OpenSSL::SSL::SSLSocket.new(s, ctx)
ssl.connect
ssl.sync_close = true
@@ -35,7 +35,7 @@ module SSLPair
ssls.close
ns
}
- port = ssls.to_io.addr[1]
+ port = ssls.to_io.local_address.ip_port
c = client(port)
s = th.value
if block_given?
@@ -56,68 +56,31 @@ module SSLPair
end
end
-module SSLPairLowlevelSocket
- def server
- host = "127.0.0.1"
- port = 0
- ctx = OpenSSL::SSL::SSLContext.new()
- ctx.ciphers = "ADH"
- ctx.tmp_dh_callback = proc { OpenSSL::TestUtils::TEST_KEY_DH1024 }
- tcps = Addrinfo.tcp(host, port).listen
- ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
- return ssls
- end
+module OpenSSL::SSLPair
+ include OpenSSL::SSLPairM
- def client(port)
- host = "127.0.0.1"
- ctx = OpenSSL::SSL::SSLContext.new()
- ctx.ciphers = "ADH"
- s = Addrinfo.tcp(host, port).connect
- ssl = OpenSSL::SSL::SSLSocket.new(s, ctx)
- ssl.connect
- ssl.sync_close = true
- ssl
+ def create_tcp_server(host, port)
+ TCPServer.new(host, port)
end
- def ssl_pair
- ssls = server
- ths = Thread.new {
- ns = ssls.accept
- ssls.close
- ns
- }
- port = ssls.to_io.connect_address.ip_port
- thc = Thread.new {
- client(port)
- }
- s = ths.value
- c = thc.value
- if block_given?
- begin
- yield c, s
- ensure
- c.close unless c.closed?
- s.close unless s.closed?
- end
- else
- return c, s
- end
- ensure
- if ths && ths.alive?
- ths.kill
- ths.join
- end
- if thc && thc.alive?
- thc.kill
- thc.join
- end
+ def create_tcp_client(host, port)
+ TCPSocket.new(host, port)
end
end
-class OpenSSL::TestEOF1 < Test::Unit::TestCase
- include TestEOF
- include SSLPair
+module OpenSSL::SSLPairLowlevelSocket
+ include OpenSSL::SSLPairM
+
+ def create_tcp_server(host, port)
+ Addrinfo.tcp(host, port).listen
+ end
+ def create_tcp_client(host, port)
+ Addrinfo.tcp(host, port).connect
+ end
+end
+
+module OpenSSL::TestEOF1M
def open_file(content)
s1, s2 = ssl_pair
Thread.new { s2 << content; s2.close }
@@ -125,10 +88,7 @@ class OpenSSL::TestEOF1 < Test::Unit::TestCase
end
end
-class OpenSSL::TestEOF2 < Test::Unit::TestCase
- include TestEOF
- include SSLPair
-
+module OpenSSL::TestEOF2M
def open_file(content)
s1, s2 = ssl_pair
Thread.new { s1 << content; s1.close }
@@ -136,9 +96,7 @@ class OpenSSL::TestEOF2 < Test::Unit::TestCase
end
end
-class OpenSSL::TestPair < Test::Unit::TestCase
- include SSLPair
-
+module OpenSSL::TestPairM
def test_getc
ssl_pair {|s1, s2|
s1 << "a"
@@ -364,18 +322,40 @@ class OpenSSL::TestPair < Test::Unit::TestCase
sock1.close if sock1 && !sock1.closed?
sock2.close if sock2 && !sock2.closed?
end
+end
+class OpenSSL::TestEOF1 < Test::Unit::TestCase
+ include TestEOF
+ include OpenSSL::SSLPair
+ include OpenSSL::TestEOF1M
end
-class OpenSSL::TestPairLowlevelSocket < Test::Unit::TestCase
- include SSLPairLowlevelSocket
+class OpenSSL::TestEOF1LowlevelSocket < Test::Unit::TestCase
+ include TestEOF
+ include OpenSSL::SSLPairLowlevelSocket
+ include OpenSSL::TestEOF1M
+end
- def test_getc
- ssl_pair {|s1, s2|
- s1 << "a"
- assert_equal(?a, s2.getc)
- }
- end
+class OpenSSL::TestEOF2 < Test::Unit::TestCase
+ include TestEOF
+ include OpenSSL::SSLPair
+ include OpenSSL::TestEOF2M
+end
+
+class OpenSSL::TestEOF2LowlevelSocket < Test::Unit::TestCase
+ include TestEOF
+ include OpenSSL::SSLPairLowlevelSocket
+ include OpenSSL::TestEOF2M
+end
+
+class OpenSSL::TestPair < Test::Unit::TestCase
+ include OpenSSL::SSLPair
+ include OpenSSL::TestPairM
+end
+
+class OpenSSL::TestPairLowlevelSocket < Test::Unit::TestCase
+ include OpenSSL::SSLPairLowlevelSocket
+ include OpenSSL::TestPairM
end
end