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

ruby-changes:26337

From: kosaki <ko1@a...>
Date: Sat, 15 Dec 2012 08:17:00 +0900 (JST)
Subject: [ruby-changes:26337] kosaki:r38388 (trunk): * test/ruby/test_thread.rb (test_uninitialized, test_backtrace,

kosaki	2012-12-15 08:11:36 +0900 (Sat, 15 Dec 2012)

  New Revision: 38388

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=38388

  Log:
    * test/ruby/test_thread.rb (test_uninitialized, test_backtrace,
    test_thread_timer_and_interrupt, test_thread_join_in_trap,
    test_thread_join_current, test_thread_join_main_thread,
    test_main_thread_status_at_exit, test_thread_status_in_trap,
    test_thread_status_raise_after_kill, test_mutex_owned,
    test_mutex_owned2): move these tests from TestThreadGroup class
      to TestThread becuase they are not thread group tests.
    
    * test/ruby/test_thread.rb (test_thread_status_raise_after_kill):
      add t.join.
    
    * test/ruby/test_threadgroup.rb: new file. moved ThreadGroup test
      form test_thread.rb.

  Added files:
    trunk/test/ruby/test_threadgroup.rb
  Modified files:
    trunk/ChangeLog
    trunk/test/ruby/test_thread.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 38387)
+++ ChangeLog	(revision 38388)
@@ -1,3 +1,19 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Sat Dec 15 08:05:56 2012  KOSAKI Motohiro  <kosaki.motohiro@g...>
+
+	* test/ruby/test_thread.rb (test_uninitialized, test_backtrace,
+	test_thread_timer_and_interrupt, test_thread_join_in_trap,
+	test_thread_join_current, test_thread_join_main_thread,
+	test_main_thread_status_at_exit, test_thread_status_in_trap,
+	test_thread_status_raise_after_kill, test_mutex_owned,
+	test_mutex_owned2): move these tests from TestThreadGroup class
+	  to TestThread becuase they are not thread group tests.
+
+	* test/ruby/test_thread.rb (test_thread_status_raise_after_kill):
+	  add t.join.
+
+	* test/ruby/test_threadgroup.rb: new file. moved ThreadGroup test
+	  form test_thread.rb.
+
 Sat Dec 15 08:02:11 2012  KOSAKI Motohiro  <kosaki.motohiro@g...>
 
 	* test/ruby/test_thread.rb (TestThread::Thread::new.): remove
Index: test/ruby/test_threadgroup.rb
===================================================================
--- test/ruby/test_threadgroup.rb	(revision 0)
+++ test/ruby/test_threadgroup.rb	(revision 38388)
@@ -0,0 +1,55 @@ https://github.com/ruby/ruby/blob/trunk/test/ruby/test_threadgroup.rb#L1
+require 'test/unit'
+require 'thread'
+require_relative 'envutil'
+
+class TestThreadGroup < Test::Unit::TestCase
+  def test_thread_init
+    thgrp = ThreadGroup.new
+    Thread.new{
+      thgrp.add(Thread.current)
+      assert_equal(thgrp, Thread.new{sleep 1}.group)
+    }.join
+  end
+
+  def test_frozen_thgroup
+    thgrp = ThreadGroup.new
+
+    t = Thread.new{1}
+    Thread.new{
+      thgrp.add(Thread.current)
+      thgrp.freeze
+      assert_raise(ThreadError) do
+        Thread.new{1}.join
+      end
+      assert_raise(ThreadError) do
+        thgrp.add(t)
+      end
+      assert_raise(ThreadError) do
+        ThreadGroup.new.add Thread.current
+      end
+    }.join
+    t.join
+  end
+
+  def test_enclosed_thgroup
+    thgrp = ThreadGroup.new
+    assert_equal(false, thgrp.enclosed?)
+
+    t = Thread.new{1}
+    Thread.new{
+      thgrp.add(Thread.current)
+      thgrp.enclose
+      assert_equal(true, thgrp.enclosed?)
+      assert_nothing_raised do
+        Thread.new{1}.join
+      end
+      assert_raise(ThreadError) do
+        thgrp.add t
+      end
+      assert_raise(ThreadError) do
+        ThreadGroup.new.add Thread.current
+      end
+    }.join
+    t.join
+  end
+end
Index: test/ruby/test_thread.rb
===================================================================
--- test/ruby/test_thread.rb	(revision 38387)
+++ test/ruby/test_thread.rb	(revision 38388)
@@ -704,58 +704,6 @@ class TestThread < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_thread.rb#L704
     t.join
 _eom
   end
-end
-
-class TestThreadGroup < Test::Unit::TestCase
-  def test_thread_init
-    thgrp = ThreadGroup.new
-    Thread.new{
-      thgrp.add(Thread.current)
-      assert_equal(thgrp, Thread.new{sleep 1}.group)
-    }.join
-  end
-
-  def test_frozen_thgroup
-    thgrp = ThreadGroup.new
-
-    t = Thread.new{1}
-    Thread.new{
-      thgrp.add(Thread.current)
-      thgrp.freeze
-      assert_raise(ThreadError) do
-        Thread.new{1}.join
-      end
-      assert_raise(ThreadError) do
-        thgrp.add(t)
-      end
-      assert_raise(ThreadError) do
-        ThreadGroup.new.add Thread.current
-      end
-    }.join
-    t.join
-  end
-
-  def test_enclosed_thgroup
-    thgrp = ThreadGroup.new
-    assert_equal(false, thgrp.enclosed?)
-
-    t = Thread.new{1}
-    Thread.new{
-      thgrp.add(Thread.current)
-      thgrp.enclose
-      assert_equal(true, thgrp.enclosed?)
-      assert_nothing_raised do
-        Thread.new{1}.join
-      end
-      assert_raise(ThreadError) do
-        thgrp.add t
-      end
-      assert_raise(ThreadError) do
-        ThreadGroup.new.add Thread.current
-      end
-    }.join
-    t.join
-  end
 
   def test_uninitialized
     c = Class.new(Thread)
@@ -871,23 +819,27 @@ Thread.new(Thread.current) {|mth| https://github.com/ruby/ruby/blob/trunk/test/ruby/test_thread.rb#L819
     t = Thread.new {
       begin
         ary << Thread.current.status
-        sleep
+        sleep #1
       ensure
         begin
           ary << Thread.current.status
-          sleep
+          sleep #2
         ensure
           ary << Thread.current.status
         end
       end
     }
 
-    sleep 0.01
-    t.kill
-    sleep 0.01
-    t.raise
-    sleep 0.01
-    assert_equal(ary, ["run", "aborting", "aborting"])
+    begin
+      sleep 0.01
+      t.kill  # wake up sleep #1
+      sleep 0.01
+      t.raise "wakeup" # wake up sleep #2
+      sleep 0.01
+      assert_equal(ary, ["run", "aborting", "aborting"])
+    ensure
+      t.join rescue nil
+    end
   end
 
   def test_mutex_owned

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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