diff options
Diffstat (limited to 'test/net/smtp/test_smtp.rb')
-rw-r--r-- | test/net/smtp/test_smtp.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/net/smtp/test_smtp.rb b/test/net/smtp/test_smtp.rb index 01b8ae504c..89a08cb17b 100644 --- a/test/net/smtp/test_smtp.rb +++ b/test/net/smtp/test_smtp.rb @@ -157,6 +157,28 @@ module Net end end + def test_eof_error_backtrace + bug13018 = '[ruby-core:78550] [Bug #13018]' + servers = Socket.tcp_server_sockets("localhost", 0) + begin + sock = nil + Thread.start do + sock = accept(servers) + sock.close + end + smtp = Net::SMTP.new("localhost", servers[0].local_address.ip_port) + e = assert_raise(EOFError, bug13018) do + smtp.start do + end + end + assert_equal(EOFError, e.class, bug13018) + assert(e.backtrace.grep(%r"\bnet/smtp\.rb:").size > 0, bug13018) + ensure + sock.close if sock + servers.each(&:close) + end + end + private def accept(servers) |