@@ -87,20 +87,22 @@ defmodule Jason.DecodeTest do
8787
8888 test "copying strings on decode" do
8989 assert parse! ( "{}" , strings: :copy ) == % { }
90+ as = String . duplicate ( "a" , 101 )
91+ bs = String . duplicate ( "b" , 102 )
9092
9193 # Copy decode, copies the key
92- assert [ { key , value } ] = Map . to_list ( parse! ( ~s( {"foo ": "bar "}) , strings: :copy ) )
93- assert key == "foo"
94- assert value == "bar"
95- assert :binary . referenced_byte_size ( key ) == 3
96- assert :binary . referenced_byte_size ( value ) == 3
94+ assert [ { key , value } ] = Map . to_list ( parse! ( ~s( {"#{ as } ": "#{ bs } "}) , strings: :copy ) )
95+ assert key == as
96+ assert value == bs
97+ assert :binary . referenced_byte_size ( key ) == byte_size ( as )
98+ assert :binary . referenced_byte_size ( value ) == byte_size ( bs )
9799
98100 # Regular decode references the original string
99- assert [ { key , value } ] = Map . to_list ( parse! ( ~s( {"foo ": "bar "}) ) )
100- assert key == "foo"
101- assert value == "bar"
102- assert :binary . referenced_byte_size ( key ) == 14
103- assert :binary . referenced_byte_size ( value ) == 14
101+ assert [ { key , value } ] = Map . to_list ( parse! ( ~s( {"#{ as } ": "#{ bs } "}) ) )
102+ assert key == as
103+ assert value == bs
104+ assert :binary . referenced_byte_size ( key ) > byte_size ( as ) + byte_size ( bs )
105+ assert :binary . referenced_byte_size ( value ) > byte_size ( bs ) + byte_size ( bs )
104106 end
105107
106108 test "custom object key mapping function" do
0 commit comments