-
Notifications
You must be signed in to change notification settings - Fork 421
/
Makefile
128 lines (100 loc) · 3.4 KB
/
Makefile
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
.PHONY: all test console compile
all: test
# user overridable
TESTSPEC ?= default.spec
PRESET ?= all
PREPARE ?= prepare
ADD_OPTS ?= -sasl sasl_error_logger false -lager handlers []
TLS_DIST ?= no
# autogenerated, not intended for overriding
DEPS_PATHS := $(addprefix $(PWD)/../../_build/test/lib/,$(addsuffix /ebin,$(DEPS)))
APP_SRC_PATH := ../../apps/ejabberd/src
SUBDIR_ERL_FILES := $(wildcard $(APP_SRC_PATH)/*/**.erl)
SUBDIR_ERL_FILES_IN_SRCDIR := $(foreach file,$(SUBDIR_ERL_FILES),$(APP_SRC_PATH)/$(notdir $(file)))
ifeq ($(TLS_DIST),yes)
TLS_DIST_OPTS := -args_file vm.dist.args
else
TLS_DIST_OPTS :=
endif
COMMON_OPTS := -sname test -setcookie ejabberd \
$(TLS_DIST_OPTS) \
-pa `pwd`/tests \
`pwd`/ebin \
`pwd`/deps/*/ebin \
$(DEPS_PATHS)
ifeq ($(shell uname), Linux)
SED := sed
else
SED := gsed
endif
test_clean: get-deps
rm -rf tests/*.beam
make test
cover_test_clean: get-deps
rm -rf tests/*.beam
make cover_test
quicktest: $(PREPARE)
erl -noinput $(COMMON_OPTS) $(ADD_OPTS) \
-s run_common_test main test=quick spec=$(TESTSPEC) \
> $@.log 2>&1 || (cat $@.log; exit 1)
pre_cover:
@cp $(SUBDIR_ERL_FILES) $(APP_SRC_PATH)
post_cover:
@rm $(SUBDIR_ERL_FILES_IN_SRCDIR)
cover_quicktest: pre_cover
make do_cover_quicktest; STATUS=$$?; make post_cover; exit $$STATUS
cover_test_preset: pre_cover
make do_cover_test_preset; STATUS=$$?; make post_cover; exit $$STATUS
cover_test: pre_cover
make do_cover_test; STATUS=$$?; make post_cover; exit $$STATUS
do_cover_quicktest: $(PREPARE)
erl -noinput $(COMMON_OPTS) $(ADD_OPTS) \
-s run_common_test main test=quick spec=$(TESTSPEC) cover=true \
> $@.log 2>&1 || (cat $@.log; exit 1)
test_preset: $(PREPARE)
erl -noinput $(COMMON_OPTS) $(ADD_OPTS) \
-s run_common_test main test=full spec=$(TESTSPEC) preset=$(PRESET) \
> $@.log 2>&1 || (cat $@.log; exit 1)
do_cover_test_preset: $(PREPARE)
erl -noinput $(COMMON_OPTS) $(ADD_OPTS) \
-s run_common_test main test=full spec=$(TESTSPEC) preset=$(PRESET) cover=true \
> $@.log 2>&1 || (cat $@.log; exit 1)
test: $(PREPARE)
erl -noinput $(COMMON_OPTS) $(ADD_OPTS) \
-s run_common_test main test=full spec=$(TESTSPEC) \
> $@.log 2>&1 || (cat $@.log; exit 1)
do_cover_test: $(PREPARE)
erl -noinput $(COMMON_OPTS) $(ADD_OPTS) \
-s run_common_test main test=full spec=$(TESTSPEC) cover=true \
> $@.log 2>&1 || (cat $@.log; exit 1)
prepare: mim_ct_rest compile vm.dist.args
erlc -Ideps/exml/include \
run_common_test.erl
mkdir -p ct_report
mim_ct_rest : \
../../apps/ejabberd/test/mim_ct_rest.erl \
../../apps/ejabberd/test/mim_ct_rest_handler.erl \
../../apps/ejabberd/test/mim_ct_sup.erl
cp $^ src/
vm.dist.args: vm.dist.args.in certs
$(SED) -e 's%__PWD__%$(PWD)%g' $< > $@
certs: priv/ssl/fake_cert.pem priv/ssl/fake_key.pem priv/ssl/cacert.pem
priv/ssl/fake_cert.pem priv/ssl/fake_key.pem priv/ssl/cacert.pem: \
../../tools/ssl/fake_cert.pem \
../../tools/ssl/fake_key.pem \
../../tools/ssl/ca/cacert.pem
mkdir -p $(@D)
cp $^ $(@D)/
console: $(PREPARE)
erl $(COMMON_OPTS) $(ADD_OPTS)
compile: get-deps
./rebar compile > $@.log 2>&1 || (cat $@.log; exit 1)
get-deps: rebar
./rebar get-deps > $@.log 2>&1 || (cat $@.log; exit 1)
clean: rebar
-@rm priv/ssl/*
-@rm -rf tests/*.beam > /dev/null 2>&1
-@./rebar clean > /dev/null 2>&1
rebar:
wget http://cloud.github.com/downloads/basho/rebar/rebar
chmod u+x rebar