1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2008-06-05 14:57:05 +00:00
parent 5e9b9ff9cb
commit 00aae60f73
4 changed files with 59 additions and 0 deletions

View file

@ -1,3 +1,12 @@
Thu Jun 5 23:56:18 2008 Yusuke Endoh <mame@tsg.ne.jp>
* 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@tsg.ne.jp>
* gc.c (rb_objspace_alloc): this function is needed only when

View file

@ -32,4 +32,23 @@ class TestGc < Test::Unit::TestCase
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

View file

@ -152,4 +152,20 @@ class TestMarshal < Test::Unit::TestCase
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

View file

@ -1,4 +1,5 @@
require 'test/unit'
require_relative 'envutil'
class TestObjectSpace < Test::Unit::TestCase
def self.deftest_id2ref(obj)
@ -53,4 +54,18 @@ End
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