summaryrefslogtreecommitdiff
path: root/test/ruby/test_parse.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_parse.rb')
-rw-r--r--test/ruby/test_parse.rb131
1 files changed, 21 insertions, 110 deletions
diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb
index 957a37eb81..2841e20f6d 100644
--- a/test/ruby/test_parse.rb
+++ b/test/ruby/test_parse.rb
@@ -14,7 +14,6 @@ class TestParse < Test::Unit::TestCase
def test_error_line
assert_syntax_error('------,,', /\n\z/, 'Message to pipe should end with a newline')
- assert_syntax_error("{hello\n world}", /hello/)
end
def test_else_without_rescue
@@ -681,16 +680,6 @@ FOO
eval "x = <<""FOO\r\n1\r\nFOO"
end
assert_equal("1\n", x)
-
- assert_nothing_raised do
- x = eval "<<' FOO'\n""[Bug #19539]\n"" FOO\n"
- end
- assert_equal("[Bug #19539]\n", x)
-
- assert_nothing_raised do
- x = eval "<<-' FOO'\n""[Bug #19539]\n"" FOO\n"
- end
- assert_equal("[Bug #19539]\n", x)
end
def test_magic_comment
@@ -1052,22 +1041,6 @@ x = __ENCODING__
assert_syntax_error(" 0b\n", /\^/)
end
- def test_unclosed_unicode_escape_at_eol_bug_19750
- assert_separately([], "#{<<-"begin;"}\n#{<<~'end;'}")
- begin;
- assert_syntax_error("/\\u", /too short escape sequence/)
- assert_syntax_error("/\\u{", /unterminated regexp meets end of file/)
- assert_syntax_error("/\\u{\\n", /invalid Unicode list/)
- assert_syntax_error("/a#\\u{\\n/", /invalid Unicode list/)
- re = eval("/a#\\u{\n$/x")
- assert_match(re, 'a')
- assert_not_match(re, 'a#')
- re = eval("/a#\\u\n$/x")
- assert_match(re, 'a')
- assert_not_match(re, 'a#')
- end;
- end
-
def test_error_def_in_argument
assert_separately([], "#{<<-"begin;"}\n#{<<~"end;"}")
begin;
@@ -1111,40 +1084,31 @@ x = __ENCODING__
end;
end
- def test_heredoc_interpolation
- var = 1
-
- v1 = <<~HEREDOC
- something
- #{"/#{var}"}
- HEREDOC
-
- v2 = <<~HEREDOC
- something
- #{_other = "/#{var}"}
- HEREDOC
+ def test_heredoc_interpolation
+ var = 1
- v3 = <<~HEREDOC
- something
- #{("/#{var}")}
- HEREDOC
+ v1 = <<~HEREDOC
+ something
+ #{"/#{var}"}
+ HEREDOC
- assert_equal "something\n/1\n", v1
- assert_equal "something\n/1\n", v2
- assert_equal "something\n/1\n", v3
- assert_equal v1, v2
- assert_equal v2, v3
- assert_equal v1, v3
- end
+ v2 = <<~HEREDOC
+ something
+ #{_other = "/#{var}"}
+ HEREDOC
- def test_heredoc_unterminated_interpolation
- code = <<~'HEREDOC'
- <<A+1
- #{
- HEREDOC
+ v3 = <<~HEREDOC
+ something
+ #{("/#{var}")}
+ HEREDOC
- assert_syntax_error(code, /can't find string "A"/)
- end
+ assert_equal "something\n/1\n", v1
+ assert_equal "something\n/1\n", v2
+ assert_equal "something\n/1\n", v3
+ assert_equal v1, v2
+ assert_equal v2, v3
+ assert_equal v1, v3
+ end
def test_unexpected_token_error
assert_syntax_error('"x"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', /unexpected/)
@@ -1154,8 +1118,6 @@ x = __ENCODING__
assert_syntax_error('0000xyz', /^ \^~~\Z/)
assert_syntax_error('1.2i1.1', /^ \^~~\Z/)
assert_syntax_error('1.2.3', /^ \^~\Z/)
- assert_syntax_error('1.', /unexpected end-of-input/)
- assert_syntax_error('1e', /expecting end-of-input/)
end
def test_truncated_source_line
@@ -1397,57 +1359,6 @@ x = __ENCODING__
end;
end
- def test_if_after_class
- assert_valid_syntax('module if true; Object end::Kernel; end')
- assert_valid_syntax('module while true; break Object end::Kernel; end')
- assert_valid_syntax('class if true; Object end::Kernel; end')
- assert_valid_syntax('class while true; break Object end::Kernel; end')
- end
-
- def test_escaped_space
- assert_syntax_error('x = \ 42', /escaped space/)
- end
-
- def test_label
- expected = {:foo => 1}
-
- code = '{"foo": 1}'
- assert_valid_syntax(code)
- assert_equal(expected, eval(code))
-
- code = '{foo: 1}'
- assert_valid_syntax(code)
- assert_equal(expected, eval(code))
-
- class << (obj = Object.new)
- attr_reader :arg
- def set(arg)
- @arg = arg
- end
- end
-
- assert_valid_syntax(code = "#{<<~"do;"}\n#{<<~'end;'}")
- do;
- obj.set foo:
- 1
- end;
- assert_equal(expected, eval(code))
- assert_equal(expected, obj.arg)
-
- assert_valid_syntax(code = "#{<<~"do;"}\n#{<<~'end;'}")
- do;
- obj.set "foo":
- 1
- end;
- assert_equal(expected, eval(code))
- assert_equal(expected, obj.arg)
- end
-
- def test_ungettable_gvar
- assert_syntax_error('$01234', /not valid to get/)
- assert_syntax_error('"#$01234"', /not valid to get/)
- end
-
=begin
def test_past_scope_variable
assert_warning(/past scope/) {catch {|tag| eval("BEGIN{throw tag}; tap {a = 1}; a")}}