1
0
Fork 0
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:
kosaki 2011-04-11 12:50:55 +00:00
parent 3b011d1a00
commit 616f70fcf6
2 changed files with 45 additions and 0 deletions

View file

@ -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.

View file

@ -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