From 59676f6d030ff06d6e577860150ed1aa3aa1046a Mon Sep 17 00:00:00 2001 From: k0kubun Date: Tue, 20 Nov 2018 02:16:30 +0000 Subject: revert r65820 and retry assert_finish From: MSP-Greg https://github.com/ruby/ruby/commit/5187ea768f57315e61486122d688f1992d4cb21f git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- bootstraptest/pending.rb | 8 -------- bootstraptest/runner.rb | 6 ++++++ bootstraptest/test_thread.rb | 6 ++++++ 3 files changed, 12 insertions(+), 8 deletions(-) (limited to 'bootstraptest') diff --git a/bootstraptest/pending.rb b/bootstraptest/pending.rb index fa4e04c6da..744c0adac1 100644 --- a/bootstraptest/pending.rb +++ b/bootstraptest/pending.rb @@ -37,11 +37,3 @@ assert_normal_exit %q{ r.instance_eval { initialize r, r } r.inspect } - -# This test randomly fails on AppVeyor msys2 with: -# test_thread.rb: A non-blocking socket operation could not be completed immediately. - read would block -assert_finish 3, %{ - th = Thread.new {sleep 0.2} - th.join(0.1) - th.join -} diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb index a5d5d219cf..c2a3790236 100755 --- a/bootstraptest/runner.rb +++ b/bootstraptest/runner.rb @@ -383,8 +383,14 @@ def assert_finish(timeout_seconds, testsrc, message = '') end if io.respond_to?(:read_nonblock) if IO.select([io], nil, nil, diff) + tries = 0 begin io.read_nonblock(1024) + rescue IO::WaitReadable + IO.select([io]) + tries += 1 + break if tries > 3 + retry rescue Errno::EAGAIN, EOFError break end while true diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb index 2b549b9ed9..d16295de8b 100644 --- a/bootstraptest/test_thread.rb +++ b/bootstraptest/test_thread.rb @@ -248,6 +248,12 @@ assert_equal 'ok', %{ $result } +assert_finish 3, %{ + th = Thread.new {sleep 0.2} + th.join(0.1) + th.join +} + assert_finish 3, %{ require 'timeout' th = Thread.new {sleep 0.2} -- cgit v1.2.3