diff options
author | Loïc Hoguin <[email protected]> | 2020-06-18 15:02:43 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2020-06-18 15:02:43 +0200 |
commit | 9de378e9b0489775a41dedea085e9d77ca52e256 (patch) | |
tree | 0ce6954a8230747a5310be4bdb99878c856a159f /plugins | |
parent | 944c69634a4914684ce0d4eaf0b4f5950e06993a (diff) | |
download | erlang.mk-9de378e9b0489775a41dedea085e9d77ca52e256.tar.gz erlang.mk-9de378e9b0489775a41dedea085e9d77ca52e256.tar.bz2 erlang.mk-9de378e9b0489775a41dedea085e9d77ca52e256.zip |
Add initial Concuerror integration
https://concuerror.com/
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/concuerror.mk | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/plugins/concuerror.mk b/plugins/concuerror.mk new file mode 100644 index 0000000..ef63add --- /dev/null +++ b/plugins/concuerror.mk @@ -0,0 +1,67 @@ +# Copyright (c) 2020, Loïc Hoguin <[email protected]> +# This file is part of erlang.mk and subject to the terms of the ISC License. + +ifdef CONCUERROR_TESTS + +.PHONY: concuerror distclean-concuerror + +# Configuration + +CONCUERROR_LOGS_DIR ?= $(CURDIR)/logs +CONCUERROR_OPTS ?= + +# Core targets. + +check:: concuerror + +ifndef KEEP_LOGS +distclean:: distclean-concuerror +endif + +# Plugin-specific targets. + +$(ERLANG_MK_TMP)/Concuerror/bin/concuerror: | $(ERLANG_MK_TMP) + $(verbose) git clone https://github.com/parapluu/Concuerror $(ERLANG_MK_TMP)/Concuerror + $(verbose) make -C $(ERLANG_MK_TMP)/Concuerror + +$(CONCUERROR_LOGS_DIR): + $(verbose) mkdir -p $(CONCUERROR_LOGS_DIR) + +define concuerror_html_report +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Concuerror HTML report</title> +</head> +<body> +<h1>Concuerror HTML report</h1> +<p>Generated on $(concuerror_date)</p> +<ul> +$(foreach t,$(concuerror_targets),<li><a href="$(t).txt">$(t)</a></li>) +</ul> +</body> +</html> +endef + +concuerror: $(addprefix concuerror-,$(subst :,-,$(CONCUERROR_TESTS))) + $(eval concuerror_date := $(shell date)) + $(eval concuerror_targets := $^) + $(verbose) $(call core_render,concuerror_html_report,$(CONCUERROR_LOGS_DIR)/concuerror.html) + +define concuerror_target +.PHONY: concuerror-$1-$2 + +concuerror-$1-$2: test-build | $(ERLANG_MK_TMP)/Concuerror/bin/concuerror $(CONCUERROR_LOGS_DIR) + $(ERLANG_MK_TMP)/Concuerror/bin/concuerror \ + --pa $(CURDIR)/ebin --pa $(TEST_DIR) \ + -o $(CONCUERROR_LOGS_DIR)/concuerror-$1-$2.txt \ + $$(CONCUERROR_OPTS) -m $1 -t $2 +endef + +$(foreach test,$(CONCUERROR_TESTS),$(eval $(call concuerror_target,$(firstword $(subst :, ,$(test))),$(lastword $(subst :, ,$(test)))))) + +distclean-concuerror: + $(gen_verbose) rm -rf $(CONCUERROR_LOGS_DIR) + +endif |