about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-04-29 18:59:48 +0000
committerEric Wong <normalperson@yhbt.net>2013-04-29 21:01:01 +0000
commit8575d11394a84cef2a8a8bddb21ec79e8a841a59 (patch)
treec409c04e6a6fd5de8e1c9cca072c146b43349c08
parent047f284170072de8d8caf0fb6e79019eb453b58a (diff)
downloadsleepy_penguin-8575d11394a84cef2a8a8bddb21ec79e8a841a59.tar.gz
It's good to cleanup after ourselves.
-rw-r--r--test/test_kqueue.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/test_kqueue.rb b/test/test_kqueue.rb
index 408783e..fb53a1b 100644
--- a/test/test_kqueue.rb
+++ b/test/test_kqueue.rb
@@ -34,6 +34,7 @@ class TestKqueue < Test::Unit::TestCase
     end
     assert_equal 0, events.size
     assert_equal 0, n
+    thr.join
 
     # synchronous add
     events = []
@@ -52,4 +53,22 @@ class TestKqueue < Test::Unit::TestCase
     rd.close if rd
     wr.close if wr
   end
+
+  def test_usable_after_fork
+    kq = Kqueue.new
+    pid = fork do
+      begin
+        ok = false
+        assert_equal(0, kq.kevent(nil, 1, 0.1) { exit!(false) })
+        ok = true
+      ensure
+        exit!(ok)
+      end
+    end
+    assert_equal(0, kq.kevent(nil, 1, 0.1) { exit!(false) })
+    _, status = Process.waitpid2(pid)
+    assert status.success?, status.inspect
+  ensure
+    kq.close
+  end
 end if defined?(SleepyPenguin::Kqueue)