* 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:
parent
5e9b9ff9cb
commit
00aae60f73
@ -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>
|
Thu Jun 5 23:40:08 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
* gc.c (rb_objspace_alloc): this function is needed only when
|
* gc.c (rb_objspace_alloc): this function is needed only when
|
||||||
|
@ -32,4 +32,23 @@ class TestGc < Test::Unit::TestCase
|
|||||||
|
|
||||||
GC.stress = prev_stress
|
GC.stress = prev_stress
|
||||||
end
|
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
|
end
|
||||||
|
@ -152,4 +152,20 @@ class TestMarshal < Test::Unit::TestCase
|
|||||||
eval("C3 = Struct.new(:foo, :baz)")
|
eval("C3 = Struct.new(:foo, :baz)")
|
||||||
assert_raise(TypeError) { Marshal.load(m) }
|
assert_raise(TypeError) { Marshal.load(m) }
|
||||||
end
|
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
|
end
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
|
require_relative 'envutil'
|
||||||
|
|
||||||
class TestObjectSpace < Test::Unit::TestCase
|
class TestObjectSpace < Test::Unit::TestCase
|
||||||
def self.deftest_id2ref(obj)
|
def self.deftest_id2ref(obj)
|
||||||
@ -53,4 +54,18 @@ End
|
|||||||
assert_same(h0, h)
|
assert_same(h0, h)
|
||||||
assert_equal(0, h0[:T_FOO])
|
assert_equal(0, h0[:T_FOO])
|
||||||
end
|
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
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user