about summary refs log tree commit homepage
path: root/test
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2014-12-02 02:21:15 +0000
committerEric Wong <e@80x24.org>2014-12-02 02:23:33 +0000
commit71aea810c6e15ba8af662698adbcb28be7e2c395 (patch)
tree734b0e0a55862be15dff34be672547839ce929f3 /test
parent65a903181cd5cdd78b4df7eacc1c574f0ef8e95c (diff)
downloadyahns-71aea810c6e15ba8af662698adbcb28be7e2c395.tar.gz
We rely on exception-free non-blocking I/O for performance,
so it is easier for us to avoid supporting new features on
old Rubies.
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