aboutsummaryrefslogtreecommitdiffstats
path: root/test/plugin_cover.mk
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2017-05-13 15:37:24 +0200
committerLoïc Hoguin <[email protected]>2017-05-13 15:37:24 +0200
commit68bb586e605c62ba9fc7c7bebe14529121dcc53a (patch)
treec26c69abada45dc1ffcff8b2c7f21308539eaf21 /test/plugin_cover.mk
parent28ab68285c5e7611ef0e450b5611e666c3253add (diff)
downloaderlang.mk-68bb586e605c62ba9fc7c7bebe14529121dcc53a.tar.gz
erlang.mk-68bb586e605c62ba9fc7c7bebe14529121dcc53a.tar.bz2
erlang.mk-68bb586e605c62ba9fc7c7bebe14529121dcc53a.zip
Convert legacy cover tests and fix a few issues
There are no more legacy tests. Enjoy!
Diffstat (limited to 'test/plugin_cover.mk')
-rw-r--r--test/plugin_cover.mk108
1 files changed, 108 insertions, 0 deletions
diff --git a/test/plugin_cover.mk b/test/plugin_cover.mk
new file mode 100644
index 0000000..11fec5c
--- /dev/null
+++ b/test/plugin_cover.mk
@@ -0,0 +1,108 @@
+# Common Test plugin.
+
+COVER_CASES = ct eunit report-and-merge
+COVER_TARGETS = $(addprefix cover-,$(COVER_CASES))
+
+.PHONY: cover $(COVER_TARGETS)
+
+cover: $(COVER_TARGETS)
+
+cover-ct: build clean
+
+ $i "Bootstrap a new OTP application named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
+
+ $i "Generate a Common Test suite"
+ $t mkdir $(APP)/test
+ $t printf "%s\n" \
+ "-module($(APP)_SUITE)." \
+ "-export([all/0, ok/1])." \
+ "all() -> [ok]." \
+ "ok(_) -> ok." > $(APP)/test/$(APP)_SUITE.erl
+
+ $i "Run Common Test with code coverage enabled"
+ $t $(MAKE) -C $(APP) ct COVER=1 $v
+
+ $i "Check that the generated files exist"
+ $t test -f $(APP)/ct.coverdata
+ $t test -f $(APP)/test/ct.cover.spec
+
+ $i "Check that the generated files are removed on clean"
+ $t $(MAKE) -C $(APP) clean $v
+ $t test ! -e $(APP)/ct.coverdata
+ $t test ! -e $(APP)/test/ct.cover.spec
+
+cover-eunit: build clean
+
+ $i "Bootstrap a new OTP application named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
+
+ $i "Generate a module containing EUnit tests"
+ $t printf "%s\n" \
+ "-module($(APP))." \
+ "-ifdef(TEST)." \
+ "-include_lib(\"eunit/include/eunit.hrl\")." \
+ "ok_test() -> ok." \
+ "-endif." > $(APP)/src/$(APP).erl
+
+ $i "Run EUnit with code coverage enabled"
+ $t $(MAKE) -C $(APP) eunit COVER=1 $v
+
+ $i "Check that the generated file exists"
+ $t test -f $(APP)/eunit.coverdata
+
+ $i "Check that the generated file is removed on clean"
+ $t $(MAKE) -C $(APP) clean $v
+ $t test ! -e $(APP)/eunit.coverdata
+
+cover-report-and-merge: build clean
+
+ $i "Bootstrap a new OTP application named $(APP)"
+ $t mkdir $(APP)/
+ $t cp ../erlang.mk $(APP)/
+ $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
+
+ $i "Generate a Common Test suite"
+ $t mkdir $(APP)/test
+ $t printf "%s\n" \
+ "-module($(APP)_SUITE)." \
+ "-export([all/0, ok/1])." \
+ "all() -> [ok]." \
+ "ok(_) -> ok." > $(APP)/test/$(APP)_SUITE.erl
+
+ $i "Generate a module containing EUnit tests"
+ $t printf "%s\n" \
+ "-module($(APP))." \
+ "-ifdef(TEST)." \
+ "-include_lib(\"eunit/include/eunit.hrl\")." \
+ "ok_test() -> ok." \
+ "-endif." > $(APP)/src/$(APP).erl
+
+ $i "Run tests with code coverage enabled"
+ $t $(MAKE) -C $(APP) tests COVER=1 $v
+
+ $i "Check that the generated files exist"
+ $t test -f $(APP)/cover/$(APP).COVER.html
+ $t test -f $(APP)/cover/index.html
+ $t test -f $(APP)/ct.coverdata
+ $t test -f $(APP)/eunit.coverdata
+ $t test -f $(APP)/test/ct.cover.spec
+
+ $i "Merge coverdata files into all.coverdata"
+ $t $(MAKE) -C $(APP) all.coverdata $v
+ $t test -f $(APP)/all.coverdata
+
+ $i "Check that the generated files are removed on clean"
+ $t $(MAKE) -C $(APP) clean $v
+ $t test ! -e $(APP)/all.coverdata
+ $t test ! -e $(APP)/ct.coverdata
+ $t test ! -e $(APP)/eunit.coverdata
+ $t test ! -e $(APP)/test/ct.cover.spec
+
+ $i "Check that the cover report is removed on distclean"
+ $t $(MAKE) -C $(APP) distclean $v
+ $t test ! -e $(APP)/cover/