summaryrefslogtreecommitdiff
path: root/test/ruby/test_primitive.rb
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-01-28 14:44:12 +0900
committerKoichi Sasada <ko1@atdot.net>2020-01-28 15:23:51 +0900
commit0f03c1433ef6a17acd64f4dc4a539b4630e975aa (patch)
tree5885649d8882b13827b0d2cd22ce15f098b7a181 /test/ruby/test_primitive.rb
parent9b65bfdc9e5eb8a36fdd464ed7534ed2a9557ea7 (diff)
support multi-run for test/ruby/test_primitive.rb
need to redefine some classes.
Diffstat (limited to 'test/ruby/test_primitive.rb')
-rw-r--r--test/ruby/test_primitive.rb78
1 files changed, 53 insertions, 25 deletions
diff --git a/test/ruby/test_primitive.rb b/test/ruby/test_primitive.rb
index 19af44ad32e..f1db934000d 100644
--- a/test/ruby/test_primitive.rb
+++ b/test/ruby/test_primitive.rb
@@ -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
+ A7_Setup = -> do
+ remove_const :A7 if defined? TestRubyPrimitive::A7
+
+ 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
- class A8
- @@c = 1
- class << self
- def m
- @@c += 1
+ 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