From 7b057211670c05134f107cfaf2740f8d1a6de09a Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Tue, 28 Nov 2023 12:30:30 -0500 Subject: [PATCH] [PRISM] Run test setting global constant separately This impacted other tests. Please mind the commons. /home/runner/work/ruby/ruby/src/test/ruby/test_compile_prism.rb:394: warning: already initialized constant Bar /tmp/test_reline_config_60145/bazbarbob.rb:6: warning: previous definition of Bar was here 1) Failure: TestModule#test_const_get_evaled [/home/runner/work/ruby/ruby/src/test/ruby/test_module.rb:1239]: NameError expected but nothing was raised. --- test/ruby/test_compile_prism.rb | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb index c1a32b84fd..2f3c2dc062 100644 --- a/test/ruby/test_compile_prism.rb +++ b/test/ruby/test_compile_prism.rb @@ -388,24 +388,20 @@ module Prism end def test_ConstantPathTargetNode - verbose = $VERBOSE - # Create some temporary nested constants - Object.send(:const_set, "MyFoo", Object) - Object.const_get("MyFoo").send(:const_set, "Bar", Object) + assert_separately([], <<~'RUBY') + verbose = $VERBOSE + # Create some temporary nested constants + Object.send(:const_set, "MyFoo", Object) + Object.const_get("MyFoo").send(:const_set, "Bar", Object) - constant_names = ["MyBar", "MyFoo::Bar", "MyFoo::Bar::Baz"] - source = "#{constant_names.join(",")} = Object" - iseq = RubyVM::InstructionSequence.compile_prism(source) - $VERBOSE = nil - prism_eval = iseq.eval - $VERBOSE = verbose - assert_equal prism_eval, Object - ensure - ## Teardown temp constants - Object.const_get("MyFoo").send(:remove_const, "Bar") - Object.send(:remove_const, "MyFoo") - Object.send(:remove_const, "MyBar") - $VERBOSE = verbose + constant_names = ["MyBar", "MyFoo::Bar", "MyFoo::Bar::Baz"] + source = "#{constant_names.join(",")} = Object" + iseq = RubyVM::InstructionSequence.compile_prism(source) + $VERBOSE = nil + prism_eval = iseq.eval + $VERBOSE = verbose + assert_equal prism_eval, Object + RUBY end def test_GlobalVariableTargetNode