[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]