about summary refs log tree commit homepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/server_helper.rb6
-rw-r--r--test/test_ssl.rb13
2 files changed, 16 insertions, 3 deletions
diff --git a/test/server_helper.rb b/test/server_helper.rb
index 856ff99..e2641a9 100644
--- a/test/server_helper.rb
+++ b/test/server_helper.rb
@@ -61,9 +61,9 @@ module ServerHelper
   end
 
   def server_helper_teardown
-    @srv.close unless @srv.closed?
-    @ru.close! if @ru
-    check_err
+    @srv.close if defined?(@srv) && !@srv.closed?
+    @ru.close! if defined?(@ru) && @ru
+    check_err if defined?(@err)
   end
 
   def server_helper_setup
diff --git a/test/test_ssl.rb b/test/test_ssl.rb
index 890cf58..2ed601c 100644
--- a/test/test_ssl.rb
+++ b/test/test_ssl.rb
@@ -6,6 +6,15 @@ class TestSSL < Testcase
   ENV["N"].to_i > 1 and parallelize_me!
   include ServerHelper
 
+  r, w = IO.pipe
+  FAST_NB = begin
+    :wait_readable == r.read_nonblock(1, exception: false)
+  rescue
+    false
+  end
+  r.close
+  w.close
+
   # copied from test/openssl/utils.rb in Ruby:
 
   TEST_KEY_DH1024 = OpenSSL::PKey::DH.new <<-_end_of_pem_
@@ -23,6 +32,10 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC
      "EF3EF13AB47A15275FC2836F3AC74CEA", 16)
 
   def setup
+    unless FAST_NB
+      skip "missing exception-free non-blocking IO in " \
+           "#{RUBY_ENGINE} #{RUBY_VERSION}"
+    end
     server_helper_setup
   end