diff options
author | Loïc Hoguin <[email protected]> | 2017-05-13 15:37:24 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2017-05-13 15:37:24 +0200 |
commit | 68bb586e605c62ba9fc7c7bebe14529121dcc53a (patch) | |
tree | c26c69abada45dc1ffcff8b2c7f21308539eaf21 /test/plugin_cover.mk | |
parent | 28ab68285c5e7611ef0e450b5611e666c3253add (diff) | |
download | erlang.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.mk | 108 |
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/ |