move dump format validation into parsing epilogue

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2017-12-21 05:09:16 +00:00
parent 29c6ca423c
commit 188d85934b
2 changed files with 77 additions and 98 deletions

View file

@ -769,6 +769,9 @@ CODE
assert_equal(S(""), S('"\\u{}"').undump)
assert_equal(S(""), S('"\\u{ }"').undump)
assert_equal(S("\u3042".encode("sjis")), S('"\x82\xA0"'.force_encoding("sjis")).undump)
assert_equal(S("\u8868".encode("sjis")), S("\"\\x95\\\\\"".force_encoding("sjis")).undump)
assert_equal(S("äöü"), S('"\u00E4\u00F6\u00FC"').undump)
assert_equal(S("äöü"), S('"\xC3\xA4\xC3\xB6\xC3\xBC"').undump)
@ -782,10 +785,17 @@ CODE
assert_raise(RuntimeError) { S('\u3042').undump }
assert_raise(RuntimeError) { S('"".force_encoding()').undump }
assert_raise(RuntimeError) { S('"".force_encoding("').undump }
assert_raise(RuntimeError) { S('"".force_encoding("UNKNOWN")').undump }
assert_raise(RuntimeError) { S('"\u3042".force_encoding("UTF-16LE")').undump }
assert_raise(RuntimeError) { S('"\x00\x00".force_encoding("UTF-16LE")"').undump }
assert_raise(RuntimeError) { S('"\x00\x00".force_encoding("'+("a"*9999999)+'")"').undump }
assert_raise(RuntimeError) { S(%("\u00E4")).undump }
assert_raise(RuntimeError) { S('"').undump }
assert_raise(RuntimeError) { S('"""').undump }
assert_raise(RuntimeError) { S('""""').undump }
assert_raise(RuntimeError) { S('"a').undump }
assert_raise(RuntimeError) { S('"\u"').undump }
assert_raise(RuntimeError) { S('"\u{"').undump }
assert_raise(RuntimeError) { S('"\u304"').undump }