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

ruby-changes:5348

From: mame <ko1@a...>
Date: Thu, 5 Jun 2008 23:57:34 +0900 (JST)
Subject: [ruby-changes:5348] Ruby:r16849 (trunk): * test/ruby/test_gc.rb: add tests to achieve over 90% test coverage of

mame	2008-06-05 23:57:05 +0900 (Thu, 05 Jun 2008)

  New Revision: 16849

  Modified files:
    trunk/ChangeLog
    trunk/test/ruby/test_gc.rb
    trunk/test/ruby/test_marshal.rb
    trunk/test/ruby/test_objectspace.rb

  Log:
    * test/ruby/test_gc.rb: add tests to achieve over 90% test coverage of
      gc.c.
    
    * test/ruby/test_objectspace.rb: ditto.
    
    * test/ruby/test_marshal.rb: ditto.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16849&r2=16848&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_marshal.rb?r1=16849&r2=16848&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_gc.rb?r1=16849&r2=16848&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_objectspace.rb?r1=16849&r2=16848&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16848)
+++ ChangeLog	(revision 16849)
@@ -1,3 +1,12 @@
+Thu Jun  5 23:56:18 2008  Yusuke Endoh  <mame@t...>
+
+	* test/ruby/test_gc.rb: add tests to achieve over 90% test coverage of
+	  gc.c.
+
+	* test/ruby/test_objectspace.rb: ditto.
+
+	* test/ruby/test_marshal.rb: ditto.
+
 Thu Jun  5 23:40:08 2008  Yusuke Endoh  <mame@t...>
 
 	* gc.c (rb_objspace_alloc): this function is needed only when
Index: test/ruby/test_objectspace.rb
===================================================================
--- test/ruby/test_objectspace.rb	(revision 16848)
+++ test/ruby/test_objectspace.rb	(revision 16849)
@@ -1,4 +1,5 @@
 require 'test/unit'
+require_relative 'envutil'
 
 class TestObjectSpace < Test::Unit::TestCase
   def self.deftest_id2ref(obj)
@@ -53,4 +54,18 @@
     assert_same(h0, h)
     assert_equal(0, h0[:T_FOO])
   end
+
+  def test_finalizer
+    EnvUtil.rubyexec("-e", <<-END) do |w, r, e|
+      a = []
+      ObjectSpace.define_finalizer(a) { p :ok }
+      b = a.dup
+      ObjectSpace.define_finalizer(a) { p :ok }
+    END
+      assert_equal("", e.read)
+      assert_equal(":ok\n:ok\n:ok\n:ok\n", r.read)
+
+      assert_raise(ArgumentError) { ObjectSpace.define_finalizer([], Object.new) }
+    end
+  end
 end
Index: test/ruby/test_marshal.rb
===================================================================
--- test/ruby/test_marshal.rb	(revision 16848)
+++ test/ruby/test_marshal.rb	(revision 16849)
@@ -152,4 +152,20 @@
     eval("C3 = Struct.new(:foo, :baz)")
     assert_raise(TypeError) { Marshal.load(m) }
   end
+
+  class C4
+    def initialize(gc)
+      @gc = gc
+    end
+    def _dump(s)
+      GC.start if @gc
+      "foo"
+    end
+  end
+
+  def test_gc
+    assert_nothing_raised do
+      Marshal.dump((0..1000).map {|x| C4.new(x % 50 == 25) })
+    end
+  end
 end
Index: test/ruby/test_gc.rb
===================================================================
--- test/ruby/test_gc.rb	(revision 16848)
+++ test/ruby/test_gc.rb	(revision 16849)
@@ -32,4 +32,23 @@
 
     GC.stress = prev_stress
   end
+
+  def test_enable_disable
+    GC.enable
+    assert_equal(false, GC.enable)
+    assert_equal(false, GC.disable)
+    assert_equal(true, GC.disable)
+    assert_equal(true, GC.disable)
+    assert_nil(GC.start)
+    assert_equal(true, GC.enable)
+    assert_equal(false, GC.enable)
+  ensure
+    GC.enable
+  end
+
+  def test_count
+    c = GC.count
+    GC.start
+    assert_operator(c, :<, GC.count)
+  end
 end

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

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