diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-10-25 14:46:28 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-10-25 14:46:28 +0000 |
commit | 3a724e086af6a6a8846da1f194cfb12c1977573b (patch) | |
tree | d1da4b8bde7e01e4dcc21d039ae1764e359aed99 /test | |
parent | 0a84a18ef486c13ae75d2272e2e3d4a23e4634ce (diff) |
merges r24513,r24514 and r24515 from trunk into ruby_1_9_1.
--
* class.c (rb_define_class_id_under, rb_define_module_id_under):
new functions to define a nested class/module with non-ascii
name.
* struct.c (make_struct): use name with encoding.
* struct.c (inspect_struct): ditto. [ruby-core:24849]
--
* test/ruby/test_marshal.rb (test_class_nonascii): test for non-ascii name class.
--
* class.c (rb_define_module_id_under): fix the name.
* class.c (rb_define_module_under): fix for prevvious changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@25479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_marshal.rb | 6 | ||||
-rw-r--r-- | test/ruby/test_struct.rb | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_marshal.rb b/test/ruby/test_marshal.rb index 4a9192d448..172bfbb3f7 100644 --- a/test/ruby/test_marshal.rb +++ b/test/ruby/test_marshal.rb @@ -198,4 +198,10 @@ class TestMarshal < Test::Unit::TestCase assert_equal(sym, Marshal.load(Marshal.dump(sym)), '[ruby-core:24788]') end end + + ClassUTF8 = eval("class R\u{e9}sum\u{e9}; self; end") + def test_class_nonascii + a = ClassUTF8.new + assert_instance_of(ClassUTF8, Marshal.load(Marshal.dump(a)), '[ruby-core:24790]') + end end diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb index 6c0e1f4fb2..1b68429d0c 100644 --- a/test/ruby/test_struct.rb +++ b/test/ruby/test_struct.rb @@ -212,4 +212,11 @@ class TestStruct < Test::Unit::TestCase Struct.new(0) } end + + def test_nonascii + struct_test = Struct.new("R\u{e9}sum\u{e9}", :"r\u{e9}sum\u{e9}") + assert_equal(Struct.const_get("R\u{e9}sum\u{e9}"), struct_test, '[ruby-core:24849]') + a = struct_test.new(42) + assert_equal("#<struct Struct::R\u{e9}sum\u{e9} r\u{e9}sum\u{e9}=42>", a.inspect, '[ruby-core:24849]') + end end |