Commit 99aff170 authored by Corey Powell's avatar Corey Powell Committed by Blaž Hrastnik

Ported a bit more of the MRI Module#prepend tests over

Currently kind_of fails miserably, still looking for the reason
parent d4b009b3
......@@ -474,7 +474,9 @@ end
# Not ISO specified
# @!group prepend
assert('Module#prepend') do
assert('test_prepend') do
module M0
def m1; [:M0] end
end
......@@ -505,7 +507,47 @@ assert('Module#prepend') do
obj = P1.new
expected = [:M2,[:M3,[:C1,[:M4,[:M1,[:C0,[:M0],:C0],:M1],:M4],:C1],:M3],:M2]
assert_equal(expected, obj.m1)
end
# mruby shouldn't be affected by this since there is
# no visibility control (yet)
assert('test_public_prepend') do
assert_nothing_raised('ruby/ruby #8846') do
Class.new.prepend(Module.new)
end
end
assert('test_prepend_inheritance') do
bug6654 = '[ruby-core:45914]'
a = Module.new
b = Module.new { include a }
c = Module.new { prepend b }
assert bug6654 do
# the Module#< operator should be used here instead, but we don't have it
assert_include(c.ancestors, a)
assert_include(c.ancestors, b)
end
bug8357 = '[ruby-core:54736] [Bug #8357]'
b = Module.new { prepend a }
c = Class.new { include b }
assert bug8357 do
# the Module#< operator should be used here instead, but we don't have it
assert_include(c.ancestors, a)
assert_include(c.ancestors, b)
end
bug8357 = '[ruby-core:54742] [Bug #8357]'
t_print c.new.kind_of?(b)
t_print "\n"
t_print [b, b.ancestors, c, c.ancestors].inspect
t_print "\n"
assert_kind_of(b, c.new, bug8357)
end
end
# @!endgroup prepend
assert('Module#to_s') do
module Test4to_sModules
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment