summaryrefslogtreecommitdiff
path: root/test/psych/test_hash.rb
diff options
context:
space:
mode:
authorAlexander Momchilov <alexander.momchilov@shopify.com>2022-07-22 16:45:03 -0400
committergit <svn-admin@ruby-lang.org>2022-08-09 01:31:23 +0900
commit0b7cfdca09651f2eae5cd0e8ae4efed5033493f2 (patch)
tree548d2a2a85db2b4376b57c674e3a87525b0a9ee9 /test/psych/test_hash.rb
parentc851bced390204d6624e58c47941f34d0858b352 (diff)
[ruby/psych] Test that recursive refs dump as aliases
https://github.com/ruby/psych/commit/d9f7289190
Diffstat (limited to 'test/psych/test_hash.rb')
-rw-r--r--test/psych/test_hash.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/psych/test_hash.rb b/test/psych/test_hash.rb
index 5374781339..43e4b8bf14 100644
--- a/test/psych/test_hash.rb
+++ b/test/psych/test_hash.rb
@@ -112,6 +112,18 @@ eoyml
assert_equal({"foo"=>{"hello"=>"world"}, "bar"=>{"hello"=>"world"}}, hash)
end
+ def test_recursive_hash_uses_alias
+ h = { }
+ h["recursive_reference"] = h
+
+ expected = <<~eoyaml
+ --- &1
+ recursive_reference: *1
+ eoyaml
+
+ assert_equal(expected, Psych.dump(h))
+ end
+
def test_key_deduplication
unless String.method_defined?(:-@) && (-("a" * 20)).equal?((-("a" * 20)))
pend "This Ruby implementation doesn't support string deduplication"