diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2024-05-16 15:07:03 -0400 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2024-05-16 19:35:10 +0000 |
| commit | 92af7054989e6bb605482178f97cee5e59ec9326 (patch) | |
| tree | 2d8bc027af3d01d937e544dc8794546d9c8a0454 /test | |
| parent | 98e1e610f6df95aa89481fd92a31a75a808ce2d1 (diff) | |
[ruby/prism] Truncate source lines in errors messages when too long
https://github.com/ruby/prism/commit/72518f5716
Diffstat (limited to 'test')
| -rw-r--r-- | test/prism/format_errors_test.rb | 42 | ||||
| -rw-r--r-- | test/prism/newline_test.rb | 1 |
2 files changed, 39 insertions, 4 deletions
diff --git a/test/prism/format_errors_test.rb b/test/prism/format_errors_test.rb index a1edbef2e8..63206d5765 100644 --- a/test/prism/format_errors_test.rb +++ b/test/prism/format_errors_test.rb @@ -6,19 +6,53 @@ return if Prism::BACKEND == :FFI module Prism class FormatErrorsTest < TestCase - def test_format_errors - assert_equal <<~ERROR, Debug.format_errors("<>", false) + def test_basic + expected = <<~ERROR > 1 | <> | ^ unexpected '<', ignoring it | ^ unexpected '>', ignoring it ERROR - assert_equal <<~'ERROR', Debug.format_errors('"%W"\u"', false) - > 1 | "%W"\u" + assert_equal expected, Debug.format_errors("<>", false) + end + + def test_multiple + expected = <<~ERROR + > 1 | "%W"\\u" | ^ unexpected backslash, ignoring it | ^ unexpected local variable or method, expecting end-of-input | ^ unterminated string meets end of file ERROR + + assert_equal expected, Debug.format_errors('"%W"\u"', false) + end + + def test_truncate_start + expected = <<~ERROR + > 1 | ... <> + | ^ unexpected '<', ignoring it + | ^ unexpected '>', ignoring it + ERROR + + assert_equal expected, Debug.format_errors("#{" " * 30}<>", false) + end + + def test_truncate_end + expected = <<~ERROR + > 1 | <#{" " * 30} ... + | ^ unexpected '<', ignoring it + ERROR + + assert_equal expected, Debug.format_errors("<#{" " * 30}a", false) + end + + def test_truncate_both + expected = <<~ERROR + > 1 | ... <#{" " * 30} ... + | ^ unexpected '<', ignoring it + ERROR + + assert_equal expected, Debug.format_errors("#{" " * 30}<#{" " * 30}a", false) end end end diff --git a/test/prism/newline_test.rb b/test/prism/newline_test.rb index d31fb89bc6..f7511f665c 100644 --- a/test/prism/newline_test.rb +++ b/test/prism/newline_test.rb @@ -10,6 +10,7 @@ module Prism filepaths = Dir["*.rb", base: base] - %w[ encoding_test.rb errors_test.rb + format_errors_test.rb parser_test.rb regexp_test.rb static_literals_test.rb |
