about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2014-02-07 22:01:14 -0500
committerEric Wong <e@80x24.org>2014-02-07 22:01:14 -0500
commit486591b239be4bfa6e7fe4e0adb92389a30cf289 (patch)
tree67c604f3f778516549f88d9db4b13562d42ccc21
parent6ea1667ab4f5e96e3f761493a8c82a844aa4922b (diff)
downloadsleepy_penguin-486591b239be4bfa6e7fe4e0adb92389a30cf289.tar.gz
-rw-r--r--test/test_kqueue_io.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/test_kqueue_io.rb b/test/test_kqueue_io.rb
index e2cbe0d..65f2443 100644
--- a/test/test_kqueue_io.rb
+++ b/test/test_kqueue_io.rb
@@ -29,6 +29,25 @@ class TestKqueueIO < Testcase
     assert_raises(TypeError) { kq.kevent("HI") }
   end
 
+  def test_delete
+    kq = Kqueue::IO.new
+    @to_close << kq
+    r, w = IO.pipe
+    @to_close << r
+    @to_close << w
+    kq.kevent(Kevent[r.fileno, EvFilt::READ, Ev::ADD, 0, 0, r])
+    w.syswrite "."
+    2.times do
+      got = []
+      kq.kevent(nil, 1, 0) { |*args| got << args }
+      assert_equal 1, got.size
+    end
+    kq.kevent(Kevent[r.fileno, EvFilt::READ|EvFilt::WRITE, Ev::DELETE, 0, 0, 0])
+    got = []
+    kq.kevent(nil, 1, 0) { |*args| got << args }
+    assert_equal 0, got.size
+  end
+
   def test_multi_event
     kq = Kqueue::IO.new
     @to_close << kq