123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- .PHONY: eunit
- ifeq ($(strip $(TEST_DIR)),)
- TEST_DIR_MODS =
- else
- TEST_DIR_MODS = $(notdir $(basename $(shell find $(TEST_DIR) -type f -name *.beam)))
- endif
- EUNIT_EBIN_MODS = $(notdir $(basename $(shell find ebin -type f -name *.beam)))
- EUNIT_MODS = $(filter-out $(patsubst %,%_tests,$(EUNIT_EBIN_MODS)),$(TEST_DIR_MODS))
- TAGGED_EUNIT_TESTS = $(foreach mod,$(EUNIT_EBIN_MODS) $(EUNIT_MODS),{module,$(mod)})
- EUNIT_OPTS ?=
- define str-join
- $(shell echo '$(strip $(1))' | sed -e "s/ /,/g")
- endef
- tests:: eunit
- help::
- @printf "%s\n" "" \
- "EUnit targets:" \
- " eunit Run all the EUnit tests for this project"
- EUNIT_RUN_BEFORE ?=
- EUNIT_RUN_AFTER ?=
- EUNIT_RUN = $(ERL) \
- -pa $(TEST_DIR) $(DEPS_DIR)/*/ebin \
- -pz ebin \
- $(EUNIT_RUN_BEFORE) \
- -eval 'case eunit:test([$(call str-join,$(TAGGED_EUNIT_TESTS))],\
- [$(EUNIT_OPTS)]) of ok -> ok; error -> halt(1) end.' \
- $(EUNIT_RUN_AFTER) \
- -eval 'halt(0).'
- eunit: test-build
- $(gen_verbose) $(EUNIT_RUN)
|