diff options
author | Zachary Scott <e@zzak.io> | 2015-06-03 15:23:23 -0400 |
---|---|---|
committer | Zachary Scott <e@zzak.io> | 2015-06-03 15:23:23 -0400 |
commit | c4cf30d1a6bcd67c3141a6e53da4239769945e65 (patch) | |
tree | 425cce85866198389539105a405a27d0442d660b /test/test_pair.rb | |
parent | 8706e768540ab7d556f1859f71d7ee3c8b40e25d (diff) | |
download | ruby-openssl-c4cf30d1a6bcd67c3141a6e53da4239769945e65.tar.gz |
Upstream test from ruby/ruby@aaf2d07
Diffstat (limited to 'test/test_pair.rb')
-rw-r--r-- | test/test_pair.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test_pair.rb b/test/test_pair.rb index 9056911b..117e22e7 100644 --- a/test/test_pair.rb +++ b/test/test_pair.rb @@ -283,6 +283,33 @@ module OpenSSL::TestPairM serv.close if serv && !serv.closed? end + def test_accept_nonblock_no_exception + ctx2 = OpenSSL::SSL::SSLContext.new + ctx2.ciphers = "ADH" + ctx2.tmp_dh_callback = proc { OpenSSL::TestUtils::TEST_KEY_DH1024 } + + sock1, sock2 = tcp_pair + + s2 = OpenSSL::SSL::SSLSocket.new(sock2, ctx2) + accepted = s2.accept_nonblock(exception: false) + assert_equal :wait_readable, accepted + + ctx1 = OpenSSL::SSL::SSLContext.new + ctx1.ciphers = "ADH" + s1 = OpenSSL::SSL::SSLSocket.new(sock1, ctx1) + th = Thread.new { s1.connect } + until th.join(0.01) + accepted = s2.accept_nonblock(exception: false) + assert_includes([s2, :wait_readable, :wait_writable ], accepted) + end + ensure + s1.close if s1 + s2.close if s2 + sock1.close if sock1 + sock2.close if sock2 + accepted.close if accepted.respond_to?(:close) + end + def test_connect_accept_nonblock ctx = OpenSSL::SSL::SSLContext.new() ctx.ciphers = "ADH" |