add support for recv() with MSG_PEEK
[kgio.git] / test / test_peek.rb
blob9d4475da80967d4b95a40c86f42a9e6e2d7b9149
1 require 'test/unit'
2 $-w = true
3 require 'kgio'
5 class TestPeek < Test::Unit::TestCase
6   class EIEIO < Errno::EIO
7   end
9   def teardown
10     @rd.close
11     @wr.close
12   end
14   def test_peek
15     @rd, @wr = Kgio::UNIXSocket.pair
16     @wr.kgio_write "HELLO"
17     assert_equal "HELLO", @rd.kgio_peek(5)
18     assert_equal "HELLO", @rd.kgio_trypeek(5)
19     assert_equal "HELLO", @rd.kgio_read(5)
20     assert_equal :wait_readable, @rd.kgio_trypeek(5)
21     def @rd.kgio_wait_readable
22       raise EIEIO
23     end
24     assert_raises(EIEIO) { @rd.kgio_peek(5) }
25   end
27   def test_peek_singleton
28     @rd, @wr = UNIXSocket.pair
29     @wr.syswrite "HELLO"
30     assert_equal "HELLO", Kgio.trypeek(@rd, 666)
31     assert_equal "HELLO", Kgio.trypeek(@rd, 666)
32     assert_equal "HELLO", Kgio.tryread(@rd, 666)
33     assert_equal :wait_readable, Kgio.trypeek(@rd, 5)
34   end
35 end