From: "phasis68 (Heesob Park)" Date: 2013-01-15T11:33:54+09:00 Subject: [ruby-core:51436] [ruby-trunk - Bug #7681] Flip-flop test failure under MinGW 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/