summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authoreileencodes <eileencodes@gmail.com>2024-02-06 17:13:50 -0500
committerKevin Newton <kddnewton@gmail.com>2024-02-11 09:41:20 -0500
commita3ceb6916828b3d2e14b4d4bb4f8c78a0bc2ed95 (patch)
tree0ba47fa4aa2d10f1d111bff2a8143a6b46abd359 /test/ruby
parent90fe1b4402498f61208e9b72ce3206d4bcbffb7d (diff)
[PRISM] Fix error handling in `pm_parse_prism`
Following changes made in ruby/prism#2365 this implements error handling for when `pm_string_mapped_init` returns `false`. Related: ruby/prism#2207
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_compile_prism.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index e09192a4b2..c48b7ac085 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -2678,6 +2678,22 @@ end
assert_prism_eval(":perĂ²")
end
+ def test_parse_file
+ assert_nothing_raised do
+ RubyVM::InstructionSequence.compile_file_prism(__FILE__)
+ end
+
+ error = assert_raise Errno::ENOENT do
+ RubyVM::InstructionSequence.compile_file_prism("idontexist.rb")
+ end
+
+ assert_equal "No such file or directory - idontexist.rb", error.message
+
+ assert_raise TypeError do
+ RubyVM::InstructionSequence.compile_file_prism(nil)
+ end
+ end
+
private
def compare_eval(source, raw:)