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:
parent
5e9b9ff9cb
commit
00aae60f73
4 changed files with 59 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue