|
@@ -2,23 +2,20 @@
|
|
# Copyright (c) 2015, Viktor Söderqvist <viktor@zuiderkwast.se>
|
|
# Copyright (c) 2015, Viktor Söderqvist <viktor@zuiderkwast.se>
|
|
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
|
# This file is part of erlang.mk and subject to the terms of the ISC License.
|
|
|
|
|
|
-COVER_REPORT_DIR = cover
|
|
|
|
|
|
+COVER_REPORT_DIR ?= cover
|
|
|
|
+COVER_DATA_DIR ?= $(CURDIR)
|
|
|
|
|
|
# Hook in coverage to ct
|
|
# Hook in coverage to ct
|
|
|
|
|
|
ifdef COVER
|
|
ifdef COVER
|
|
ifdef CT_RUN
|
|
ifdef CT_RUN
|
|
ifneq ($(wildcard $(TEST_DIR)),)
|
|
ifneq ($(wildcard $(TEST_DIR)),)
|
|
-# All modules in 'ebin'
|
|
|
|
-COVER_MODS = $(notdir $(basename $(call core_ls,ebin/*.beam)))
|
|
|
|
-
|
|
|
|
test-build:: $(TEST_DIR)/ct.cover.spec
|
|
test-build:: $(TEST_DIR)/ct.cover.spec
|
|
|
|
|
|
-$(TEST_DIR)/ct.cover.spec:
|
|
|
|
- $(verbose) echo Cover mods: $(COVER_MODS)
|
|
|
|
|
|
+$(TEST_DIR)/ct.cover.spec: cover-data-dir
|
|
$(gen_verbose) printf "%s\n" \
|
|
$(gen_verbose) printf "%s\n" \
|
|
- '{incl_mods,[$(subst $(space),$(comma),$(COVER_MODS))]}.' \
|
|
|
|
- '{export,"$(CURDIR)/ct.coverdata"}.' > $@
|
|
|
|
|
|
+ "{incl_app, '$(PROJECT)', details}." \
|
|
|
|
+ '{export,"$(abspath $(COVER_DATA_DIR))/ct.coverdata"}.' > $@
|
|
|
|
|
|
CT_RUN += -cover $(TEST_DIR)/ct.cover.spec
|
|
CT_RUN += -cover $(TEST_DIR)/ct.cover.spec
|
|
endif
|
|
endif
|
|
@@ -32,6 +29,13 @@ ifneq ($(COVER_REPORT_DIR),)
|
|
tests::
|
|
tests::
|
|
$(verbose) $(MAKE) --no-print-directory cover-report
|
|
$(verbose) $(MAKE) --no-print-directory cover-report
|
|
endif
|
|
endif
|
|
|
|
+
|
|
|
|
+cover-data-dir: | $(COVER_DATA_DIR)
|
|
|
|
+
|
|
|
|
+$(COVER_DATA_DIR):
|
|
|
|
+ $(verbose) mkdir -p $(COVER_DATA_DIR)
|
|
|
|
+else
|
|
|
|
+cover-data-dir:
|
|
endif
|
|
endif
|
|
|
|
|
|
clean:: coverdata-clean
|
|
clean:: coverdata-clean
|
|
@@ -54,19 +58,19 @@ help::
|
|
|
|
|
|
# Plugin specific targets
|
|
# Plugin specific targets
|
|
|
|
|
|
-COVERDATA = $(filter-out all.coverdata,$(wildcard *.coverdata))
|
|
|
|
|
|
+COVERDATA = $(filter-out $(COVER_DATA_DIR)/all.coverdata,$(wildcard $(COVER_DATA_DIR)/*.coverdata))
|
|
|
|
|
|
.PHONY: coverdata-clean
|
|
.PHONY: coverdata-clean
|
|
coverdata-clean:
|
|
coverdata-clean:
|
|
- $(gen_verbose) rm -f *.coverdata $(TEST_DIR)/ct.cover.spec
|
|
|
|
|
|
+ $(gen_verbose) rm -f $(COVER_DATA_DIR)/*.coverdata $(TEST_DIR)/ct.cover.spec
|
|
|
|
|
|
# Merge all coverdata files into one.
|
|
# Merge all coverdata files into one.
|
|
define cover_export.erl
|
|
define cover_export.erl
|
|
$(foreach f,$(COVERDATA),cover:import("$(f)") == ok orelse halt(1),)
|
|
$(foreach f,$(COVERDATA),cover:import("$(f)") == ok orelse halt(1),)
|
|
- cover:export("$@"), halt(0).
|
|
|
|
|
|
+ cover:export("$(COVER_DATA_DIR)/$@"), halt(0).
|
|
endef
|
|
endef
|
|
|
|
|
|
-all.coverdata: $(COVERDATA)
|
|
|
|
|
|
+all.coverdata: $(COVERDATA) cover-data-dir
|
|
$(gen_verbose) $(call erlang,$(cover_export.erl))
|
|
$(gen_verbose) $(call erlang,$(cover_export.erl))
|
|
|
|
|
|
# These are only defined if COVER_REPORT_DIR is non-empty. Set COVER_REPORT_DIR to
|
|
# These are only defined if COVER_REPORT_DIR is non-empty. Set COVER_REPORT_DIR to
|
|
@@ -76,7 +80,7 @@ ifneq ($(COVER_REPORT_DIR),)
|
|
.PHONY: cover-report-clean cover-report
|
|
.PHONY: cover-report-clean cover-report
|
|
|
|
|
|
cover-report-clean:
|
|
cover-report-clean:
|
|
- $(gen_verbose) rm -rf $(COVER_REPORT_DIR)
|
|
|
|
|
|
+ $(gen_verbose) rm -rf $(COVER_REPORT_DIR) $(COVER_DATA_DIR)
|
|
|
|
|
|
ifeq ($(COVERDATA),)
|
|
ifeq ($(COVERDATA),)
|
|
cover-report:
|
|
cover-report:
|