From 5d394118fff7fb94cbba4fc2e3f6d740932e33ce Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 29 May 2010 18:40:48 +0000 Subject: * parse.y (parser_tokadd_utf8, parser_tokadd_string): allow NUL containing symbol literals, as well as String#to_sym. [ruby-dev:41447] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_unicode_escape.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'test/ruby/test_unicode_escape.rb') diff --git a/test/ruby/test_unicode_escape.rb b/test/ruby/test_unicode_escape.rb index 5887dbc3dc..088f81ce14 100644 --- a/test/ruby/test_unicode_escape.rb +++ b/test/ruby/test_unicode_escape.rb @@ -57,12 +57,14 @@ EOS assert_equal(:"\u{41}", :"\u0041") assert_equal(:ΓΌ, :"\u{fc}") - # the NUL character is not allowed in symbols - assert_raise(SyntaxError) { eval %q(:"\u{0}")} - assert_raise(SyntaxError) { eval %q(:"\u0000")} - assert_raise(SyntaxError) { eval %q(:"\u{fc 0 0041}")} - assert_raise(SyntaxError) { eval %q(:"\x00")} - assert_raise(SyntaxError) { eval %q(:"\0")} + # the NUL character is allowed in symbols + bug = '[ruby-dev:41447]' + sym = "\0".to_sym + assert_nothing_raised(SyntaxError, bug) {assert_equal(sym, eval(%q(:"\u{0}")))} + assert_nothing_raised(SyntaxError, bug) {assert_equal(sym, eval(%q(:"\u0000")))} + assert_nothing_raised(SyntaxError, bug) {assert_equal("\u{fc}\0A".to_sym, eval(%q(:"\u{fc 0 0041}")))} + assert_nothing_raised(SyntaxError, bug) {assert_equal(sym, eval(%q(:"\x00")))} + assert_nothing_raised(SyntaxError, bug) {assert_equal(sym, eval(%q(:"\0")))} end def test_regexp -- cgit v1.2.3