#! /usr/bin/env escript % This file is part of Jiffy released under the MIT license. % See the LICENSE file for more information. main([]) -> code:add_pathz("test"), code:add_pathz("ebin"), Cases = read_cases(), etap:plan(length(Cases)), lists:foreach(fun(Case) -> test(Case) end, Cases), etap:end_tests(). test({Name, Json, {error, _}=Erl}) -> etap:is((catch jiffy:decode(Json)), Erl, Name); test({Name, Json, Erl}) -> etap:is(jiffy:decode(Json), Erl, Name). read_cases() -> CasesPath = filename:join(["test", "cases", "*.json"]), FileNames = lists:sort(filelib:wildcard(CasesPath)), lists:map(fun(F) -> make_pair(F) end, FileNames). make_pair(FileName) -> {ok, Json} = file:read_file(FileName), {BaseName, _} = lists:splitwith(fun(C) -> C /= $. end, FileName), ErlFname = BaseName ++ ".erl", {ok, [Term]} = file:consult(ErlFname), {BaseName, Json, Term}.