mirror of
https://github.com/valitydev/yamerl.git
synced 2024-11-06 10:55:16 +00:00
76 lines
2.3 KiB
Erlang
76 lines
2.3 KiB
Erlang
-module('${MODULE}').
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
${include_lib}
|
|
${include}
|
|
|
|
-define(srcdir, "${srcdir}").
|
|
-define(builddir, "${builddir}").
|
|
-define(top_srcdir, "${top_srcdir}").
|
|
-define(top_builddir, "${top_builddir}").
|
|
|
|
%% -------------------------------------------------------------------
|
|
%% Testsuite entry point.
|
|
%% -------------------------------------------------------------------
|
|
|
|
main_test_() ->
|
|
Setup = fun setup/0,
|
|
Cleanup = fun cleanup/1,
|
|
Tests = tests_list(),
|
|
{setup, Setup, Cleanup, Tests}.
|
|
|
|
%% -------------------------------------------------------------------
|
|
%% Setup and cleanup.
|
|
%% -------------------------------------------------------------------
|
|
|
|
setup() ->
|
|
%% Setup coverity checking. To know what module to compile and the
|
|
%% options to use, we look at the Emakefile.
|
|
{ok, Emakefile} = file:consult(
|
|
filename:join([?top_builddir, "src", "Emakefile"])),
|
|
cover:start(),
|
|
cover_compile(Emakefile).
|
|
|
|
cover_compile([{Mods, Options} | Rest]) ->
|
|
%% Include directories are relative to $top_builddir/src in
|
|
%% src/Emakefile. We must prepend this path to each directory. If
|
|
%% "Dir" is an absolute directory, filename:join/1 won't change it.
|
|
Options1 = [
|
|
case Option of
|
|
{i, Dir} -> {i, filename:join([?top_builddir, "src", Dir])};
|
|
_ -> Option
|
|
end
|
|
|| Option <- Options
|
|
],
|
|
cover_compile2(Mods, Options1),
|
|
cover_compile(Rest);
|
|
cover_compile([]) ->
|
|
ok.
|
|
|
|
cover_compile2([Mod | Rest], Options) ->
|
|
File = filename:join([?top_builddir, "src", atom_to_list(Mod) ++ ".erl"]),
|
|
case cover:compile(File, Options) of
|
|
{ok, _} ->
|
|
ok;
|
|
{error, Reason} ->
|
|
io:format(standard_error,
|
|
"Failed to compile \"~s\": ~p~n", [File, Reason])
|
|
end,
|
|
cover_compile2(Rest, Options);
|
|
cover_compile2([], _) ->
|
|
ok.
|
|
|
|
cleanup(_) ->
|
|
cover:export(?MODULE_STRING ".coverdata"),
|
|
cover:stop().
|
|
|
|
%% -------------------------------------------------------------------
|
|
%% Tests listing and construction.
|
|
%% -------------------------------------------------------------------
|
|
|
|
tests_list() ->
|
|
[
|
|
%% DO NOT EDIT: The list of tests is filled automatically using
|
|
%% the files in data/$module/.
|
|
].
|