aboutsummaryrefslogtreecommitdiffstats
path: root/test/ripper/test_scanner_events.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ripper/test_scanner_events.rb')
-rw-r--r--test/ripper/test_scanner_events.rb11
1 files changed, 10 insertions, 1 deletions
diff --git a/test/ripper/test_scanner_events.rb b/test/ripper/test_scanner_events.rb
index 727e967d67..0b4814a73e 100644
--- a/test/ripper/test_scanner_events.rb
+++ b/test/ripper/test_scanner_events.rb
@@ -24,9 +24,11 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase
lexer = Ripper::Lexer.new(str)
if error
lexer.singleton_class.class_eval do
- define_method(:on_parse_error) {|ev|
+ define_method(:on_error) {|ev|
yield __callee__, ev, token()
}
+ alias on_parse_error on_error
+ alias compile_error on_error
end
end
lexer.lex.select {|_1,type,_2| type == sym }.map {|_1,_2,tok| tok }
@@ -967,4 +969,11 @@ class TestRipper::ScannerEvents < Test::Unit::TestCase
scan('tlambda_arg', '-> {}')
end
+ def test_invalid_char
+ err = nil
+ assert_equal ['a'], scan('ident', "\ea") {|*e| err = e}
+ assert_equal :compile_error, err[0]
+ assert_match /Invalid char/, err[1]
+ assert_equal "\e", err[2]
+ end
end if ripper_test