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