drop remaining 1.8 and fragile autopush code paths
[kgio.git] / test / test_default_wait.rb
blob7137d0cbd5ccf5515e17aea176beb4374fe57a8b
1 require 'test/unit'
2 require 'io/nonblock'
3 $-w = true
4 require 'kgio'
6 class TestDefaultWait < Test::Unit::TestCase
8   def test_socket_pair
9     a, b = Kgio::UNIXSocket.pair
10     assert_equal a, a.kgio_wait_writable
11     a.syswrite('.')
12     assert_equal b, b.kgio_wait_readable
13   end
15   def test_pipe
16     a, b = Kgio::Pipe.new
17     assert_equal b, b.kgio_wait_writable
18     b.syswrite('.')
19     assert_equal a, a.kgio_wait_readable
20   end
22   def test_wait_readable_timed
23     a, b = Kgio::Pipe.new
24     t0 = Time.now
25     assert_nil a.kgio_wait_readable(1.1)
26     diff = Time.now - t0
27     assert_in_delta diff, 1.1, 0.2
29     b.kgio_write '.'
30     assert_equal a, a.kgio_wait_readable(1.1)
31   end
33   def test_wait_writable_timed
34     a, b = Kgio::Pipe.new
35     buf = "*" * 65536
36     true until Symbol === b.kgio_trywrite(buf)
37     t0 = Time.now
38     assert_nil b.kgio_wait_writable(1.1)
39     diff = Time.now - t0
40     assert_in_delta diff, 1.1, 0.2
42     a.kgio_read(16384)
43     assert_equal b, b.kgio_wait_writable(1.1)
44   end
45 end