# 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/