1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # Copyright (c) 2013-2015, Loïc Hoguin <essen@ninenines.eu>
- # This file is part of erlang.mk and subject to the terms of the ISC License.
- .PHONY: ct apps-ct distclean-ct
- # Configuration.
- CT_OPTS ?=
- ifneq ($(wildcard $(TEST_DIR)),)
- CT_SUITES ?= $(sort $(subst _SUITE.erl,,$(notdir $(call core_find,$(TEST_DIR)/,*_SUITE.erl))))
- else
- CT_SUITES ?=
- endif
- # Core targets.
- tests:: ct
- distclean:: distclean-ct
- help::
- $(verbose) printf "%s\n" "" \
- "Common_test targets:" \
- " ct Run all the common_test suites for this project" \
- "" \
- "All your common_test suites have their associated targets." \
- "A suite named http_SUITE can be ran using the ct-http target."
- # Plugin-specific targets.
- CT_RUN = ct_run \
- -no_auto_compile \
- -noinput \
- -pa $(CURDIR)/ebin $(DEPS_DIR)/*/ebin $(APPS_DIR)/*/ebin $(TEST_DIR) \
- -dir $(TEST_DIR) \
- -logdir $(CURDIR)/logs
- ifeq ($(CT_SUITES),)
- ct: $(if $(IS_APP),,apps-ct)
- else
- ct: test-build $(if $(IS_APP),,apps-ct)
- $(verbose) mkdir -p $(CURDIR)/logs/
- $(gen_verbose) $(CT_RUN) -sname ct_$(PROJECT) -suite $(addsuffix _SUITE,$(CT_SUITES)) $(CT_OPTS)
- endif
- ifneq ($(ALL_APPS_DIRS),)
- define ct_app_target
- apps-ct-$1:
- $(MAKE) -C $1 ct IS_APP=1
- endef
- $(foreach app,$(ALL_APPS_DIRS),$(eval $(call ct_app_target,$(app))))
- apps-ct: test-build $(addprefix apps-ct-,$(ALL_APPS_DIRS))
- endif
- ifndef t
- CT_EXTRA =
- else
- ifeq (,$(findstring :,$t))
- CT_EXTRA = -group $t
- else
- t_words = $(subst :, ,$t)
- CT_EXTRA = -group $(firstword $(t_words)) -case $(lastword $(t_words))
- endif
- endif
- define ct_suite_target
- ct-$(1): test-build
- $(verbose) mkdir -p $(CURDIR)/logs/
- $(gen_verbose) $(CT_RUN) -sname ct_$(PROJECT) -suite $(addsuffix _SUITE,$(1)) $(CT_EXTRA) $(CT_OPTS)
- endef
- $(foreach test,$(CT_SUITES),$(eval $(call ct_suite_target,$(test))))
- distclean-ct:
- $(gen_verbose) rm -rf $(CURDIR)/logs/
|