3 class TestMogileFS__Util < Test::Unit::TestCase
6 def test_mogilefs_write
9 svr = Proc.new do |serv, port|
10 client, client_addr = serv.accept
15 nr += client.readpartial(16384).length
20 wr.syswrite("#{nr}\n")
21 client.close rescue nil
23 t = TempServer.new(svr)
24 s = Socket.mogilefs_new('127.0.0.1', t.port)
25 tmp = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF)
26 sndbuf_bytes = tmp.unpack('i')[0]
27 big_string = ' ' * (sndbuf_bytes * 10)
29 sent = s.send(big_string, 0)
30 assert(sent < big_string.length)
32 syswrite_full(s, big_string)
35 assert_equal((sent + big_string.length), rd.sysread(4096).to_i)
40 def test_write_timeout
41 svr = Proc.new do |serv, port|
42 client, client_addr = serv.accept
44 readed = client.readpartial(16384)
47 t = TempServer.new(svr)
48 s = Socket.mogilefs_new('127.0.0.1', t.port)
49 tmp = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF)
50 sndbuf_bytes = tmp.unpack('i')[0]
51 big_string = ' ' * (sndbuf_bytes * 10)
53 assert_raises(MogileFS::Timeout) { syswrite_full(s, big_string, 0.1) }
59 def test_sysread_slowly
67 syswrite_full(wr, str)
72 buf = sysread_full(rd, expect.size)
73 assert_equal expect, buf
76 Process.kill('TERM', pid) rescue nil
77 Process.waitpid(pid) rescue nil
80 def test_sysread_timeout
88 syswrite_full(wr, str)
93 assert_raises(MogileFS::Timeout) { sysread_full(rd, expect.size, 0.1) }
96 Process.kill('TERM', pid) rescue nil
97 Process.waitpid(pid) rescue nil
100 def test_sysread_full_timeout
108 syswrite_full(wr, str)
113 assert_raises(MogileFS::Timeout) { sysread_full(rd,expect.size,0.1,true) }
116 Process.kill('TERM', pid) rescue nil
117 Process.waitpid(pid) rescue nil