about summary refs log tree commit homepage
path: root/test/test_peek.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-02-06 21:56:35 +0000
committerEric Wong <normalperson@yhbt.net>2011-02-06 21:57:35 +0000
commit47653194bf6ad53b9f5fca1b266c30855df5ebbd (patch)
treee148ceea5e1a608592a88968a79599f598357796 /test/test_peek.rb
parent75a7da2bd757617995f5492df1205e4a3459618b (diff)
downloadkgio-47653194bf6ad53b9f5fca1b266c30855df5ebbd.tar.gz
Kgio.trypeek, kgio_trypeek and kgio_peek methods are added
for using with sockets.
Diffstat (limited to 'test/test_peek.rb')
-rw-r--r--test/test_peek.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/test_peek.rb b/test/test_peek.rb
new file mode 100644
index 0000000..9d4475d
--- /dev/null
+++ b/test/test_peek.rb
@@ -0,0 +1,35 @@
+require 'test/unit'
+$-w = true
+require 'kgio'
+
+class TestPeek < Test::Unit::TestCase
+  class EIEIO < Errno::EIO
+  end
+
+  def teardown
+    @rd.close
+    @wr.close
+  end
+
+  def test_peek
+    @rd, @wr = Kgio::UNIXSocket.pair
+    @wr.kgio_write "HELLO"
+    assert_equal "HELLO", @rd.kgio_peek(5)
+    assert_equal "HELLO", @rd.kgio_trypeek(5)
+    assert_equal "HELLO", @rd.kgio_read(5)
+    assert_equal :wait_readable, @rd.kgio_trypeek(5)
+    def @rd.kgio_wait_readable
+      raise EIEIO
+    end
+    assert_raises(EIEIO) { @rd.kgio_peek(5) }
+  end
+
+  def test_peek_singleton
+    @rd, @wr = UNIXSocket.pair
+    @wr.syswrite "HELLO"
+    assert_equal "HELLO", Kgio.trypeek(@rd, 666)
+    assert_equal "HELLO", Kgio.trypeek(@rd, 666)
+    assert_equal "HELLO", Kgio.tryread(@rd, 666)
+    assert_equal :wait_readable, Kgio.trypeek(@rd, 5)
+  end
+end