mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
support multi-run for test/ruby/test_primitive.rb
need to redefine some classes.
This commit is contained in:
parent
9b65bfdc9e
commit
0f03c1433e
1 changed files with 59 additions and 31 deletions
|
@ -26,24 +26,31 @@ class TestRubyPrimitive < Test::Unit::TestCase
|
|||
assert_equal 4, c
|
||||
end
|
||||
|
||||
C = 1
|
||||
class A
|
||||
Const = 1
|
||||
class B
|
||||
Const = 2
|
||||
class C
|
||||
Const = 3
|
||||
def const
|
||||
Const
|
||||
C_Setup = -> do
|
||||
remove_const :C if defined? ::TestRubyPrimitive::C
|
||||
remove_const :A if defined? ::TestRubyPrimitive::A
|
||||
|
||||
C = 1
|
||||
class A
|
||||
Const = 1
|
||||
class B
|
||||
Const = 2
|
||||
class C
|
||||
Const = 3
|
||||
def const
|
||||
Const
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
(1..2).map {
|
||||
A::B::C::Const
|
||||
}
|
||||
end
|
||||
(1..2).map {
|
||||
A::B::C::Const
|
||||
}
|
||||
|
||||
def test_constant
|
||||
C_Setup.call
|
||||
|
||||
assert_equal 1, C
|
||||
assert_equal 1, C
|
||||
assert_equal 1, A::Const
|
||||
|
@ -145,42 +152,60 @@ class TestRubyPrimitive < Test::Unit::TestCase
|
|||
assert_equal 7, ($test_ruby_primitive_gvar = 7)
|
||||
end
|
||||
|
||||
class A7
|
||||
@@c = 1
|
||||
def m
|
||||
@@c += 1
|
||||
end
|
||||
end
|
||||
A7_Setup = -> do
|
||||
remove_const :A7 if defined? TestRubyPrimitive::A7
|
||||
|
||||
def test_cvar_from_instance_method
|
||||
assert_equal 2, A7.new.m
|
||||
assert_equal 3, A7.new.m
|
||||
assert_equal 4, A7.new.m
|
||||
end
|
||||
|
||||
class A8
|
||||
@@c = 1
|
||||
class << self
|
||||
class A7
|
||||
@@c = 1
|
||||
def m
|
||||
@@c += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_cvar_from_instance_method
|
||||
A7_Setup.call
|
||||
|
||||
assert_equal 2, A7.new.m
|
||||
assert_equal 3, A7.new.m
|
||||
assert_equal 4, A7.new.m
|
||||
end
|
||||
|
||||
A8_Setup = -> do
|
||||
remove_const :A8 if defined? TestRubyPrimitive::A8
|
||||
|
||||
class A8
|
||||
@@c = 1
|
||||
class << self
|
||||
def m
|
||||
@@c += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_cvar_from_singleton_method
|
||||
A8_Setup.call
|
||||
|
||||
assert_equal 2, A8.m
|
||||
assert_equal 3, A8.m
|
||||
assert_equal 4, A8.m
|
||||
end
|
||||
|
||||
class A9
|
||||
@@c = 1
|
||||
def self.m
|
||||
@@c += 1
|
||||
A9_Setup = -> do
|
||||
remove_const :A8 if defined? TestRubyPrimitive::A8
|
||||
|
||||
class A9
|
||||
@@c = 1
|
||||
def self.m
|
||||
@@c += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_cvar_from_singleton_method2
|
||||
A9_Setup.call
|
||||
|
||||
assert_equal 2, A9.m
|
||||
assert_equal 3, A9.m
|
||||
assert_equal 4, A9.m
|
||||
|
@ -199,6 +224,9 @@ class TestRubyPrimitive < Test::Unit::TestCase
|
|||
@iv += 2
|
||||
assert_equal 4, @iv
|
||||
|
||||
# init @@cv
|
||||
@@cv = nil
|
||||
|
||||
@@cv ||= 1
|
||||
assert_equal 1, @@cv
|
||||
@@cv &&= 2
|
||||
|
|
Loading…
Add table
Reference in a new issue