about summary refs log tree commit homepage
path: root/test/test_posix_mq.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_posix_mq.rb')
-rw-r--r--test/test_posix_mq.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/test_posix_mq.rb b/test/test_posix_mq.rb
index d726d36..e831012 100644
--- a/test/test_posix_mq.rb
+++ b/test/test_posix_mq.rb
@@ -152,7 +152,21 @@ class Test_POSIX_MQ < Test::Unit::TestCase
       assert_equal true, mq.send("HI", 0)
       assert_equal 1, mq.attr.curmsgs
       assert_nil mq.close
-      assert_raises(IOError) { mq.close }
+
+      r, w = IO.pipe
+      w.close
+      r.close
+      idempotent_close = begin
+        r.close
+        true
+      rescue IOError
+        false
+      end
+      if idempotent_close
+        2.times { assert_nil mq.close }
+      else
+        assert_raises(IOError) { mq.close }
+      end
     end
     assert @mq.closed?
     @mq = nil