Skip to content

Commit bdbd96d

Browse files
committed
Fix reference string decoding test
Closes michalmuskala#104
1 parent 188e66b commit bdbd96d

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

test/decode_test.exs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)