Bug #4187: Error: test_starttls(IMAPTest)
http://redmine.ruby-lang.org/issues/show/4187

起票者: Kazuhiro NISHIYAMA
ステータス: Open, 優先度: Normal
カテゴリ: test
ruby -v: ruby 1.9.3dev (2010-12-22 trunk 30291) [x86_64-linux]

test_starttls で Error になります。
IOError の方が多いのですが、何度か実行していると OpenSSL::SSL::SSLError になることもあるようです。
表面化するようになった理由は #4186 と同じ証明書の期限切れのようです。

assert がないのでエラーになった方が良いのかもしれませんが、 imap.logout と imap.disconnect の
ところに imap.disconnected? のチェックを追加するとエラーにならなくなるようです。

  2) Error:
test_starttls(IMAPTest):
IOError: closed stream
    test/net/imap/test_imap.rb:440:in `ensure in starttls_test'
    test/net/imap/test_imap.rb:440:in `starttls_test'
    test/net/imap/test_imap.rb:109:in `test_starttls'

  2) Error:
test_starttls(IMAPTest):
OpenSSL::SSL::SSLError: SSL_write:: certificate verify failed
    test/net/imap/test_imap.rb:438:in `starttls_test'
    test/net/imap/test_imap.rb:109:in `test_starttls'


diff --git a/test/net/imap/test_imap.rb b/test/net/imap/test_imap.rb
index 8ccec64..01982ab 100644
--- a/test/net/imap/test_imap.rb
+++ b/test/net/imap/test_imap.rb
@@ -435,9 +435,9 @@ class IMAPTest < Test::Unit::TestCase
     begin
       begin
         imap = yield(port)
-        imap.logout
+        imap.logout if !imap.disconnected?
       ensure
-        imap.disconnect if imap
+        imap.disconnect if imap && !imap.disconnected?
       end
     ensure
       server.close


----------------------------------------
http://redmine.ruby-lang.org