Project

General

Profile

Bug #4683 » 0002-test_io-add-test-for-copy_stream-failing-on-EINTR.patch

test case, may not be portable... - normalperson (Eric Wong), 05/13/2011 06:56 AM

View differences:

test/ruby/test_io.rb
}
end
def trapping_usr1
@usr1_rcvd = 0
trap(:USR1) { @usr1_rcvd += 1 }
yield
ensure
trap(:USR1, "DEFAULT")
end
def test_pipe
r, w = IO.pipe
assert_instance_of(IO, r)
......
result = t.value
assert_equal(megacontent, result)
}
with_socketpair {|s1, s2|
begin
s1.nonblock = true
rescue Errno::EBADF
skip "nonblocking IO for pipe is not implemented"
end
trapping_usr1 do
nr = 10
pid = fork do
s1.close
IO.select([s2])
Process.kill(:USR1, Process.ppid)
s2.read
end
s2.close
nr.times do
assert_equal megacontent.bytesize, IO.copy_stream("megasrc", s1)
end
assert_equal(1, @usr1_rcvd)
s1.close
_, status = Process.waitpid2(pid)
assert status.success?, status.inspect
end
}
end
}
end
(2-2/4)