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

ruby-changes:23325

From: naruse <ko1@a...>
Date: Wed, 18 Apr 2012 10:08:45 +0900 (JST)
Subject: [ruby-changes:23325] naruse:r35376 (trunk): Run separate process if the test uses GC.stress.

naruse	2012-04-18 10:08:34 +0900 (Wed, 18 Apr 2012)

  New Revision: 35376

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

  Log:
    Run separate process if the test uses GC.stress.

  Modified files:
    trunk/test/bigdecimal/test_bigdecimal.rb

Index: test/bigdecimal/test_bigdecimal.rb
===================================================================
--- test/bigdecimal/test_bigdecimal.rb	(revision 35375)
+++ test/bigdecimal/test_bigdecimal.rb	(revision 35376)
@@ -1093,28 +1093,29 @@
 
   def test_split_under_gc_stress
     bug3258 = '[ruby-dev:41213]'
-    stress, GC.stress = GC.stress, true
+    expect = 10.upto(20).map{|i|[1, "1", 10, i+1].inspect}
+    assert_in_out_err(%w[-rbigdecimal --disable-gems], <<-EOS, expect, [], bug3258)
+    GC.stress = true
     10.upto(20) do |i|
-      b = BigDecimal.new("1"+"0"*i)
-      assert_equal([1, "1", 10, i+1], b.split, bug3258)
+      p BigDecimal.new("1"+"0"*i).split
     end
-  ensure
-    GC.stress = stress
+    EOS
   end
 
   def test_coerce_under_gc_stress
-    expect = ":too_long_to_embed_as_string can't be coerced into BigDecimal"
-    under_gc_stress do
+    assert_in_out_err(%w[-rbigdecimal --disable-gems], <<-EOS, [], [])
+      expect = ":too_long_to_embed_as_string can't be coerced into BigDecimal"
       b = BigDecimal.new("1")
+      GC.stress = true
       10.times do
         begin
           b.coerce(:too_long_to_embed_as_string)
         rescue => e
-          assert_instance_of TypeError, e
-          assert_equal expect, e.message
+          raise unless e.is_a?(TypeError)
+          raise "'\#{expect}' is expected, but '\#{e.message}'" unless e.message == expect
         end
       end
-    end
+    EOS
   end
 
   def test_INFINITY
@@ -1178,17 +1179,17 @@
   end
 
   def test_BigMath_exp_under_gc_stress
-    expect = ":too_long_to_embed_as_string can't be coerced into BigDecimal"
-    under_gc_stress do
+    assert_in_out_err(%w[-rbigdecimal --disable-gems], <<-EOS, [], [])
+      expect = ":too_long_to_embed_as_string can't be coerced into BigDecimal"
       10.times do
         begin
           BigMath.exp(:too_long_to_embed_as_string, 6)
         rescue => e
-          assert_instance_of ArgumentError, e
-          assert_equal expect, e.message
+          raise unless e.is_a?(ArgumentError)
+          raise "'\#{expect}' is expected, but '\#{e.message}'" unless e.message == expect
         end
       end
-    end
+    EOS
   end
 
   def test_BigMath_log_with_nil
@@ -1277,17 +1278,17 @@
   end
 
   def test_BigMath_log_under_gc_stress
-    expect = ":too_long_to_embed_as_string can't be coerced into BigDecimal"
-    under_gc_stress do
+    assert_in_out_err(%w[-rbigdecimal --disable-gems], <<-EOS, [], [])
+      expect = ":too_long_to_embed_as_string can't be coerced into BigDecimal"
       10.times do
         begin
           BigMath.log(:too_long_to_embed_as_string, 6)
         rescue => e
-          assert_instance_of ArgumentError, e
-          assert_equal expect, e.message
+          raise unless e.is_a?(ArgumentError)
+          raise "'\#{expect}' is expected, but '\#{e.message}'" unless e.message == expect
         end
       end
-    end
+    EOS
   end
 
   def test_dup

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

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