mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_io.rb: Added TestIO#test_cross_thread_close_stdio
and TestIO#test_cross_thread_close_fd. The patch was written by Eric Wong. [ruby-core:35669] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3b011d1a00
commit
616f70fcf6
2 changed files with 45 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
Mon Apr 11 21:49:18 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
|
||||
|
||||
* test/ruby/test_io.rb: Added TestIO#test_cross_thread_close_stdio
|
||||
and TestIO#test_cross_thread_close_fd.
|
||||
The patch was written by Eric Wong. [ruby-core:35669]
|
||||
|
||||
Mon Apr 11 21:15:54 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
|
||||
|
||||
* file.c (rb_group_member): kill 256K of stack usage.
|
||||
|
|
|
@ -1809,4 +1809,43 @@ End
|
|||
Process.waitpid2(pid)
|
||||
end
|
||||
end
|
||||
|
||||
def test_cross_thread_close_fd
|
||||
with_pipe do |r,w|
|
||||
read_thread = Thread.new do
|
||||
begin
|
||||
r.read(1)
|
||||
rescue => e
|
||||
e
|
||||
end
|
||||
end
|
||||
|
||||
sleep(0.1) until read_thread.stop?
|
||||
r.close
|
||||
read_thread.join
|
||||
assert_kind_of(IOError, read_thread.value)
|
||||
end
|
||||
end
|
||||
|
||||
def test_cross_thread_close_stdio
|
||||
with_pipe do |r,w|
|
||||
pid = fork do
|
||||
$stdin.reopen(r)
|
||||
r.close
|
||||
read_thread = Thread.new do
|
||||
begin
|
||||
$stdin.read(1)
|
||||
rescue => e
|
||||
e
|
||||
end
|
||||
end
|
||||
sleep(0.1) until read_thread.stop?
|
||||
$stdin.close
|
||||
read_thread.join
|
||||
exit(IOError === read_thread.value)
|
||||
end
|
||||
assert Process.waitpid2(pid)[1].success?
|
||||
end
|
||||
rescue NotImplementedError
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue