diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-16 02:00:24 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-16 02:00:24 +0000 |
commit | d8ea05c1267dafe0b64a315764362dfece295f80 (patch) | |
tree | 1a4e849a1f8517cd755ed9e78f677fece167ca3c /test/ruby | |
parent | c747848d982201f8fa4b31e65a89a2e5f284a4db (diff) | |
download | ruby-d8ea05c1267dafe0b64a315764362dfece295f80.tar.gz |
* test/ruby/test_io.rb (test_race_closed_stream): separate because it stops
entire test process on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_io.rb | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index 3598634f22..ddce1d1af5 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -3398,27 +3398,30 @@ __END__ end def test_race_closed_stream - bug13158 = '[ruby-core:79262] [Bug #13158]' - closed = nil - q = Queue.new - IO.pipe do |r, w| - thread = Thread.new do - begin - q << true - while r.gets + assert_separately([], "#{<<-"begin;"}\n#{<<-"end;"}") + begin; + bug13158 = '[ruby-core:79262] [Bug #13158]' + closed = nil + q = Queue.new + IO.pipe do |r, w| + thread = Thread.new do + begin + q << true + while r.gets + end + ensure + closed = r.closed? end - ensure - closed = r.closed? end + q.pop + sleep 0.01 while thread.status != 'sleep' + r.close + assert_raise_with_message(IOError, /stream closed/) do + thread.join + end + assert_equal(true, closed, bug13158 + ': stream should be closed') end - q.pop - sleep 0.01 while thread.status != 'sleep' - r.close - assert_raise_with_message(IOError, /stream closed/) do - thread.join - end - assert_equal(true, closed, "#{bug13158}: stream should be closed") - end + end; end if RUBY_ENGINE == "ruby" # implementation details |