您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

33 行
906 B

  1. #! /usr/bin/env escript
  2. main([]) ->
  3. code:add_pathz("test"),
  4. code:add_pathz("ebin"),
  5. Cases = read_cases(),
  6. etap:plan(length(Cases)),
  7. lists:foreach(fun(Case) -> test(Case) end, Cases),
  8. etap:end_tests().
  9. test({Name, Json, Erl}) ->
  10. etap:is(jiffy:decode(Json), Erl, Name).
  11. read_cases() ->
  12. CasesPath = filename:join(["test", "cases", "*.json"]),
  13. FileNames = lists:sort(filelib:wildcard(CasesPath)),
  14. lists:map(fun(F) -> make_pair(F) end, FileNames).
  15. make_pair(FileName) ->
  16. {ok, Json} = file:read_file(FileName),
  17. {BaseName, _} = lists:splitwith(fun(C) -> C /= $. end, FileName),
  18. ErlFname = BaseName ++ ".erl",
  19. {ok, [Term]} = file:consult(ErlFname),
  20. case Term of
  21. {error, _} ->
  22. {BaseName, Json, Term};
  23. {error, _, _} ->
  24. {BaseName, Json, Term};
  25. _ ->
  26. {BaseName, Json, {ok, Term}}
  27. end.