From 5bd6949151512a6667a58bcadcb019157b65cd7c Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Thu, 25 Jan 2024 16:59:42 -0500 Subject: [PATCH] [PRISM] Add raw option to assert_prism_eval --- test/ruby/test_compile_prism.rb | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb index 7fb71a666e..4ccea6d319 100644 --- a/test/ruby/test_compile_prism.rb +++ b/test/ruby/test_compile_prism.rb @@ -59,10 +59,7 @@ module Prism end def test_SourceLineNode - ruby_eval = RubyVM::InstructionSequence.compile("__LINE__").eval - prism_eval = RubyVM::InstructionSequence.compile_prism("__LINE__").eval - - assert_equal ruby_eval, prism_eval + assert_prism_eval("__LINE__", raw: true) end def test_TrueNode @@ -776,10 +773,7 @@ module Prism "hello".equal?("hello") RUBY ].each do |src| - ruby_eval = RubyVM::InstructionSequence.compile(src).eval - prism_eval = RubyVM::InstructionSequence.compile_prism(src).eval - - assert_equal ruby_eval, prism_eval, src + assert_prism_eval(src, raw: true) end end @@ -1710,15 +1704,8 @@ end end def test_PreExecutionNode - # BEGIN {} must be defined at the top level, so we need to manually - # call the evals here instead of calling `assert_prism_eval` - ruby_eval = RubyVM::InstructionSequence.compile("BEGIN { a = 1 }; 2").eval - prism_eval = RubyVM::InstructionSequence.compile_prism("BEGIN { a = 1 }; 2").eval - assert_equal ruby_eval, prism_eval - - ruby_eval = RubyVM::InstructionSequence.compile("b = 2; BEGIN { a = 1 }; a + b").eval - prism_eval = RubyVM::InstructionSequence.compile_prism("b = 2; BEGIN { a = 1 }; a + b").eval - assert_equal ruby_eval, prism_eval + assert_prism_eval("BEGIN { a = 1 }; 2", raw: true) + assert_prism_eval("b = 2; BEGIN { a = 1 }; a + b", raw: true) end def test_PostExecutionNode @@ -2498,8 +2485,8 @@ end private - def compare_eval(source) - source = "class Prism::TestCompilePrism\n#{source}\nend" + def compare_eval(source, raw:) + source = raw ? source : "class Prism::TestCompilePrism\n#{source}\nend" ruby_eval = RubyVM::InstructionSequence.compile(source).eval prism_eval = RubyVM::InstructionSequence.compile_prism(source).eval @@ -2511,14 +2498,14 @@ end end end - def assert_prism_eval(source) + def assert_prism_eval(source, raw: false) $VERBOSE, verbose_bak = nil, $VERBOSE begin - compare_eval(source) + compare_eval(source, raw:) # Test "popped" functionality - compare_eval("#{source}; 1") + compare_eval("#{source}; 1", raw:) ensure $VERBOSE = verbose_bak end