From 789a4fb6be3bb92380e4314748872ab441ed5554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 11 May 2015 13:47:51 +0300 Subject: Fix cover tests and use Erlang snippet --- plugins/cover.mk | 59 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 28 deletions(-) (limited to 'plugins/cover.mk') diff --git a/plugins/cover.mk b/plugins/cover.mk index 3397dca..e94dcd4 100644 --- a/plugins/cover.mk +++ b/plugins/cover.mk @@ -101,36 +101,39 @@ EUNIT_HRL_MODS = $(subst $(space),$(comma),$(shell \ grep -e '^\s*-include.*include/eunit\.hrl"' src/*.erl \ | sed "s/^src\/\(.*\)\.erl:.*/'\1'/" | uniq)) +define cover_report.erl + $(foreach f,$(COVERDATA),cover:import("$(f)") == ok orelse halt(1),) + Ms = cover:imported_modules(), + [cover:analyse_to_file(M, "$(COVER_REPORT_DIR)/" ++ atom_to_list(M) + ++ ".COVER.html", [html]) || M <- Ms], + Report = [begin {ok, R} = cover:analyse(M, module), R end || M <- Ms], + EunitHrlMods = [$(EUNIT_HRL_MODS)], + Report1 = [{M, {Y, case lists:member(M, EunitHrlMods) of + true -> N - 1; false -> N end}} || {M, {Y, N}} <- Report], + TotalY = lists:sum([Y || {_, {Y, _}} <- Report1]), + TotalN = lists:sum([N || {_, {_, N}} <- Report1]), + TotalPerc = round(100 * TotalY / (TotalY + TotalN)), + {ok, F} = file:open("$(COVER_REPORT_DIR)/index.html", [write]), + io:format(F, "~n" + "~n" + "Coverage report~n" + "~n", []), + io:format(F, "

Coverage

~n

Total: ~p%

~n", [TotalPerc]), + io:format(F, "~n", []), + [io:format(F, "" + "~n", + [M, M, round(100 * Y / (Y + N))]) || {M, {Y, N}} <- Report1], + How = "$(subst $(space),$(comma)$(space),$(basename $(COVERDATA)))", + Date = "$(shell date -u "+%Y-%m-%dT%H:%M:%SZ")", + io:format(F, "
ModuleCoverage
~p~p%
~n" + "

Generated using ~s and erlang.mk on ~s.

~n" + "", [How, Date]), + halt(). +endef + cover-report: $(gen_verbose) mkdir -p $(COVER_REPORT_DIR) - $(gen_verbose) $(ERL) -eval ' \ - $(foreach f,$(COVERDATA),cover:import("$(f)") == ok orelse halt(1),) \ - Ms = cover:imported_modules(), \ - [cover:analyse_to_file(M, "$(COVER_REPORT_DIR)/" ++ atom_to_list(M) \ - ++ ".COVER.html", [html]) || M <- Ms], \ - Report = [begin {ok, R} = cover:analyse(M, module), R end || M <- Ms], \ - EunitHrlMods = [$(EUNIT_HRL_MODS)], \ - Report1 = [{M, {Y, case lists:member(M, EunitHrlMods) of \ - true -> N - 1; false -> N end}} || {M, {Y, N}} <- Report], \ - TotalY = lists:sum([Y || {_, {Y, _}} <- Report1]), \ - TotalN = lists:sum([N || {_, {_, N}} <- Report1]), \ - TotalPerc = round(100 * TotalY / (TotalY + TotalN)), \ - {ok, F} = file:open("$(COVER_REPORT_DIR)/index.html", [write]), \ - io:format(F, "~n" \ - "~n" \ - "Coverage report~n" \ - "~n", []), \ - io:format(F, "

Coverage

~n

Total: ~p%

~n", [TotalPerc]),\ - io:format(F, "~n", []), \ - [io:format(F, "" \ - "~n", \ - [M, M, round(100 * Y / (Y + N))]) || {M, {Y, N}} <- Report1], \ - How = "$(subst $(space),$(comma)$(space),$(basename $(COVERDATA)))", \ - Date = "$(shell date -u "+%Y-%m-%dT%H:%M:%SZ")", \ - io:format(F, "
ModuleCoverage
~p~p%
~n" \ - "

Generated using ~s and erlang.mk on ~s.

~n" \ - "", [How, Date]), \ - halt().' + $(gen_verbose) $(call erlang,$(cover_report.erl)) endif endif # ifneq ($(COVER_REPORT_DIR),) -- cgit v1.2.3