yamerl/testsuite/template.erl
Jean-Sébastien Pédron 4940dc8aa3 Import new testsuite framework from "otis"
See "otis" ChangeLog.
2011-06-23 18:14:41 +02:00

68 lines
2.0 KiB
Erlang

%% $Id: bones_version.erl 2899 2010-05-07 15:06:08Z jean.sebastien.pedron $
-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]) ->
cover_compile2(Mods, Options),
cover_compile(Rest);
cover_compile([]) ->
ok.
cover_compile2([Mod | Rest], Options) ->
File = filename:join([?top_srcdir, "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/.
].