1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# Copyright (c) 2014, Enrique Fernandez <[email protected]>
# Copyright (c) 2015, Loïc Hoguin <[email protected]>
# This file is contributed to erlang.mk and subject to the terms of the ISC License.
.PHONY: eunit
# Configuration
EUNIT_OPTS ?=
# Core targets.
tests:: eunit
help::
$(verbose) printf "%s\n" "" \
"EUnit targets:" \
" eunit Run all the EUnit tests for this project"
# Plugin-specific targets.
define eunit.erl
case "$(COVER)" of
"" -> ok;
_ ->
case cover:compile_beam_directory("ebin") of
{error, _} -> halt(1);
_ -> ok
end
end,
case eunit:test([$(call comma_list,$(1))], [$(EUNIT_OPTS)]) of
ok -> ok;
error -> halt(2)
end,
case "$(COVER)" of
"" -> ok;
_ ->
cover:export("eunit.coverdata")
end,
halt()
endef
EUNIT_EBIN_MODS = $(notdir $(basename $(call core_find,ebin/,*.beam)))
EUNIT_TEST_MODS = $(notdir $(basename $(call core_find,$(TEST_DIR)/,*.beam)))
EUNIT_MODS = $(foreach mod,$(EUNIT_EBIN_MODS) $(filter-out \
$(patsubst %,%_tests,$(EUNIT_EBIN_MODS)),$(EUNIT_TEST_MODS)),{module,'$(mod)'})
eunit: test-build
$(gen_verbose) $(ERL) -pa $(TEST_DIR) $(DEPS_DIR)/*/ebin ebin \
-eval "$(subst $(newline),,$(subst ",\",$(call eunit.erl,$(EUNIT_MODS))))"
|