ruby-changes:36320
From: akr <ko1@a...>
Date: Thu, 13 Nov 2014 22:04:50 +0900 (JST)
Subject: [ruby-changes:36320] akr:r48401 (trunk): * test/monitor/test_monitor.rb: Use assert_join_threads.
akr 2014-11-13 22:04:43 +0900 (Thu, 13 Nov 2014) New Revision: 48401 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=48401 Log: * test/monitor/test_monitor.rb: Use assert_join_threads. Modified files: trunk/ChangeLog trunk/test/monitor/test_monitor.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 48400) +++ ChangeLog (revision 48401) @@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Thu Nov 13 21:51:56 2014 Tanaka Akira <akr@f...> + + * test/monitor/test_monitor.rb: Use assert_join_threads. + Thu Nov 13 21:45:13 2014 Tanaka Akira <akr@f...> * test/openssl: Don't specify port number. Index: test/monitor/test_monitor.rb =================================================================== --- test/monitor/test_monitor.rb (revision 48400) +++ test/monitor/test_monitor.rb (revision 48401) @@ -20,14 +20,16 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L20 end @monitor.exit } - @monitor.enter - queue.enq(nil) - for i in 1 .. 5 - ary.push(i) - Thread.pass - end - @monitor.exit - th.join + th2 = Thread.start { + @monitor.enter + queue.enq(nil) + for i in 1 .. 5 + ary.push(i) + Thread.pass + end + @monitor.exit + } + assert_join_threads([th, th2]) assert_equal((1..10).to_a, ary) end @@ -43,14 +45,16 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L45 end end } - @monitor.synchronize do - queue.enq(nil) - for i in 1 .. 5 - ary.push(i) - Thread.pass + th2 = Thread.start { + @monitor.synchronize do + queue.enq(nil) + for i in 1 .. 5 + ary.push(i) + Thread.pass + end end - end - th.join + } + assert_join_threads([th, th2]) assert_equal((1..10).to_a, ary) end @@ -69,18 +73,18 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L73 ary << :t2 } } - @monitor.synchronize do - queue.enq(nil) - queue.enq(nil) - assert_equal([], ary) - t1.kill - t2.kill - ary << :main - end - assert_equal([:main], ary) - ensure - t1.join - t2.join + t3 = Thread.start { + @monitor.synchronize do + queue.enq(nil) + queue.enq(nil) + assert_equal([], ary) + t1.kill + t2.kill + ary << :main + end + assert_equal([:main], ary) + } + assert_join_threads([t1, t2, t3]) end def test_try_enter @@ -94,15 +98,17 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L98 @monitor.exit queue2.enq(nil) } - assert_equal(true, @monitor.try_enter) - @monitor.exit - queue1.enq(nil) - queue2.deq - assert_equal(false, @monitor.try_enter) - queue1.enq(nil) - queue2.deq - assert_equal(true, @monitor.try_enter) - th.join + th2 = Thread.start { + assert_equal(true, @monitor.try_enter) + @monitor.exit + queue1.enq(nil) + queue2.deq + assert_equal(false, @monitor.try_enter) + queue1.enq(nil) + queue2.deq + assert_equal(true, @monitor.try_enter) + } + assert_join_threads([th, th2]) end def test_cond @@ -117,14 +123,16 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L123 cond.signal end end - @monitor.synchronize do - queue1.enq(nil) - assert_equal("foo", a) - result1 = cond.wait - assert_equal(true, result1) - assert_equal("bar", a) + th2 = Thread.start do + @monitor.synchronize do + queue1.enq(nil) + assert_equal("foo", a) + result1 = cond.wait + assert_equal(true, result1) + assert_equal("bar", a) + end end - th.join + assert_join_threads([th, th2]) end def test_timedwait @@ -138,14 +146,16 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L146 cond.signal end end - @monitor.synchronize do - queue2.enq(nil) - assert_equal("foo", b) - result2 = cond.wait(0.1) - assert_equal(true, result2) - assert_equal("bar", b) + th2 = Thread.start do + @monitor.synchronize do + queue2.enq(nil) + assert_equal("foo", b) + result2 = cond.wait(0.1) + assert_equal(true, result2) + assert_equal("bar", b) + end end - th.join + assert_join_threads([th, th2]) c = "foo" queue3 = Queue.new @@ -156,17 +166,19 @@ class TestMonitor < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/monitor/test_monitor.rb#L166 cond.signal end end - @monitor.synchronize do - assert_equal("foo", c) - result3 = cond.wait(0.1) - assert_equal(true, result3) # wait always returns true in Ruby 1.9 - assert_equal("foo", c) - queue3.enq(nil) - result4 = cond.wait - assert_equal(true, result4) - assert_equal("bar", c) + th2 = Thread.start do + @monitor.synchronize do + assert_equal("foo", c) + result3 = cond.wait(0.1) + assert_equal(true, result3) # wait always returns true in Ruby 1.9 + assert_equal("foo", c) + queue3.enq(nil) + result4 = cond.wait + assert_equal(true, result4) + assert_equal("bar", c) + end end - th.join + assert_join_threads([th, th2]) # d = "foo" # cumber_thread = Thread.start { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/