Issue #7681 has been updated by phasis68 (Heesob Park).


Ping?

I found this failure occurred after win32ole test.
Requiring win32ole affects this test.
The following code returns false.

def test_shared_thread
	require 'win32ole'
	ff = proc {|n| true if n==3..n==5}
	v = 1..9
	a = true
	th = Thread.new {
		v.select {|i|
			Thread.pass while a
			ff[i].tap {a = true}
		}
	}
	v1 = v.select {|i|
		Thread.pass until a
		ff[i].tap {a = false}
	}
	v2 = th.value
	v1==v2
end

This failure is raised from ext/win32ole/lib/win32ole.rb where redefines Thread#initialize like this:
class Thread
  alias :org_initialize :initialize
  def initialize(*arg, &block)
    if block
      org_initialize(*arg) {
        WIN32OLE.ole_initialize
        begin
          block.call(*arg)
        ensure
          WIN32OLE.ole_uninitialize
        end
      }
    else
      org_initialize(*arg)
    end
  end
end

----------------------------------------
Bug #7681: Flip-flop test failure under MinGW
https://bugs.ruby-lang.org/issues/7681#change-35420

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Urgent
Assignee: nobu (Nobuyoshi Nakada)
Category: test
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2013-01-11 trunk 38770) [x64-mingw32]


Hello,

Since r38747 test_shared_thread is failing under both x86 and x64 MinGW (GCC 4.7.2):

http://ci.rubyinstaller.org/view/All/job/ruby-trunk-x86-test-all/669/console

http://ci.rubyinstaller.org/view/All/job/ruby-trunk-x64-test-all/545/console

  1) Failure:
test_shared_thread(TestFlip) [C:/Users/Worker/Jenkins/workspace/ruby-trunk-x86-build/test/ruby/test_flip.rb:40]:
flip-flop should be separated per threads.
<[3, 4, 5]> expected but was
<[3, 4]>.



-- 
http://bugs.ruby-lang.org/