diff options
Diffstat (limited to 'spec/ruby/core/threadgroup/add_spec.rb')
| -rw-r--r-- | spec/ruby/core/threadgroup/add_spec.rb | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/spec/ruby/core/threadgroup/add_spec.rb b/spec/ruby/core/threadgroup/add_spec.rb index 4320f7ba30..2921c1ab22 100644 --- a/spec/ruby/core/threadgroup/add_spec.rb +++ b/spec/ruby/core/threadgroup/add_spec.rb @@ -1,36 +1,39 @@ require_relative '../../spec_helper' -require_relative 'fixtures/classes' describe "ThreadGroup#add" do before :each do - @chan1,@chan2 = Channel.new,Channel.new - @thread = Thread.new { @chan1 << :go; @chan2.receive } - @chan1.receive + @q1, @q2 = Queue.new, Queue.new + @thread = Thread.new { @q1 << :go; @q2.pop } + @q1.pop end after :each do - @chan2 << :done + @q2 << :done @thread.join end - it "adds the given thread to a group and returns self" do - @thread.group.should_not == nil + # This spec randomly kills mspec worker like: https://ci.appveyor.com/project/ruby/ruby/build/9806/job/37tx2atojy96227m + # TODO: Investigate the cause or at least print helpful logs, and remove this `platform_is_not` guard. + platform_is_not :mingw do + it "adds the given thread to a group and returns self" do + @thread.group.should_not == nil - tg = ThreadGroup.new - tg.add(@thread).should == tg - @thread.group.should == tg - tg.list.include?(@thread).should == true - end + tg = ThreadGroup.new + tg.add(@thread).should == tg + @thread.group.should == tg + tg.list.include?(@thread).should == true + end - it "removes itself from any other threadgroup" do - tg1 = ThreadGroup.new - tg2 = ThreadGroup.new + it "removes itself from any other threadgroup" do + tg1 = ThreadGroup.new + tg2 = ThreadGroup.new - tg1.add(@thread) - @thread.group.should == tg1 - tg2.add(@thread) - @thread.group.should == tg2 - tg2.list.include?(@thread).should == true - tg1.list.include?(@thread).should == false + tg1.add(@thread) + @thread.group.should == tg1 + tg2.add(@thread) + @thread.group.should == tg2 + tg2.list.include?(@thread).should == true + tg1.list.include?(@thread).should == false + end end end |
