diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2024-11-12 19:52:39 +0100 |
|---|---|---|
| committer | Jean Boussier <jean.boussier@gmail.com> | 2024-11-12 20:21:27 +0100 |
| commit | ee1cd1656fc667840282a4e9c3f2cc5e3154e50e (patch) | |
| tree | 352eadf78fff128bd42a69336713d58a09463e62 /test | |
| parent | 6c123649cd9631342395096cf735835820c208b6 (diff) | |
ObjectSpace.dump: handle Module#set_temporary_name
[Bug #20892]
Until the introduction of that method, it was impossible for a
Module name not to be valid JSON, hence it wasn't going through
the slower escaping function.
This assumption no longer hold.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/12067
Diffstat (limited to 'test')
| -rw-r--r-- | test/objspace/test_objspace.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb index b54a438132..3f08413378 100644 --- a/test/objspace/test_objspace.rb +++ b/test/objspace/test_objspace.rb @@ -902,6 +902,12 @@ class TestObjSpace < Test::Unit::TestCase # load_allocation_path_helper 'iseq = RubyVM::InstructionSequence.load_from_binary(File.binread(path))', to_binary: true end + def test_escape_class_name + class_name = '" little boby table [Bug #20892]' + json = ObjectSpace.dump(Class.new.tap { |c| c.set_temporary_name(class_name) }) + assert_equal class_name, JSON.parse(json)["name"] + end + def test_utf8_method_names name = "utf8_❨╯°□°❩╯︵┻━┻" obj = ObjectSpace.trace_object_allocations do |
