blob: 359b99711750acfb5a2aadadb44663be6288aff9 [file] [log] [blame]
% This file is part of Jiffy released under the MIT license.
% See the LICENSE file for more information.
-module(jiffy_17_copy_strings_tests).
-include_lib("eunit/include/eunit.hrl").
check_binaries({Props}) when is_list(Props) ->
lists:all(fun({Key, Value}) ->
check_binaries(Key) andalso check_binaries(Value)
end, Props);
check_binaries(Values) when is_list(Values) ->
lists:all(fun(Value) ->
check_binaries(Value)
end, Values);
check_binaries(Bin) when is_binary(Bin) ->
io:format("~s :: ~p ~p", [Bin, byte_size(Bin), binary:referenced_byte_size(Bin)]),
byte_size(Bin) == binary:referenced_byte_size(Bin);
check_binaries(_Bin) ->
true.
copy_strings_test_() ->
Opts = [copy_strings],
Cases = [
<<"\"foo\"">>,
<<"[\"bar\"]">>,
<<"{\"foo\":\"bar\"}">>,
<<"{\"foo\":[\"bar\"]}">>
],
{"Test copy_strings", lists:map(fun(Json) ->
EJson = jiffy:decode(Json, Opts),
?_assert(check_binaries(EJson))
end, Cases)}.