[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.
This commit is contained in:
Alan Wu 2023-11-28 12:30:30 -05:00
parent 55f34d4745
commit 7b05721167

View File

@ -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