forked from rabbitmq/rabbitmq-erlang-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.mk
130 lines (108 loc) · 4.85 KB
/
test.mk
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
129
130
# The contents of this file are subject to the Mozilla Public License
# Version 1.1 (the "License"); you may not use this file except in
# compliance with the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
# License for the specific language governing rights and limitations
# under the License.
#
# The Original Code is RabbitMQ.
#
# The Initial Developer of the Original Code is GoPivotal, Inc.
# Copyright (c) 2007-2014 GoPivotal, Inc. All rights reserved.
#
IS_SUCCESS:=egrep "(All .+ tests (successful|passed).|Test passed.)"
TESTING_MESSAGE:=-eval "error_logger:tty(false), error_logger:logfile({open, \"$(TMPDIR)/erlang-client-tests.log\"}), io:format(\"~nTesting in progress. Please wait...~n~n\")."
prepare_tests: compile compile_tests
all_tests: prepare_tests
OK=true && \
{ $(MAKE) test_suites || OK=false; } && \
{ $(MAKE) test_common_package || OK=false; } && \
{ $(MAKE) test_direct || OK=false; } && \
$$OK
test_suites: prepare_tests
OK=true && \
{ $(MAKE) test_network || OK=false; } && \
{ $(MAKE) test_remote_direct || OK=false; } && \
$(ALL_SSL) && \
$$OK
test_suites_coverage: prepare_tests
OK=true && \
{ $(MAKE) test_network_coverage || OK=false; } && \
{ $(MAKE) test_direct_coverage || OK=false; } && \
$(ALL_SSL_COVERAGE) && \
$$OK
## Starts a broker, configures users and runs the tests on the same node
run_test_in_broker:
$(MAKE) start_test_broker_node
$(MAKE) unboot_broker
OK=true && \
TMPFILE=$(MKTEMP) && echo "Redirecting output to $$TMPFILE" && \
{ $(MAKE) -C $(BROKER_DIR) run-node \
RABBITMQ_SERVER_START_ARGS="$(PA_LOAD_PATH) $(SSL_BROKER_ARGS) \
-noshell -s rabbit $(RUN_TEST_ARGS) -s init stop" 2>&1 | \
tee $$TMPFILE || OK=false; } && \
{ $(IS_SUCCESS) $$TMPFILE || OK=false; } && \
rm $$TMPFILE && \
$(MAKE) boot_broker && \
$(MAKE) stop_test_broker_node && \
$$OK
## Starts a broker, configures users and runs the tests from a different node
run_test_detached: start_test_broker_node
OK=true && \
TMPFILE=$(MKTEMP) && echo "Redirecting output to $$TMPFILE" && \
{ $(RUN) -noinput $(TESTING_MESSAGE) \
$(SSL_CLIENT_ARGS) $(RUN_TEST_ARGS) \
-s init stop 2>&1 | tee $$TMPFILE || OK=false; } && \
{ $(IS_SUCCESS) $$TMPFILE || OK=false; } && \
rm $$TMPFILE && \
$(MAKE) stop_test_broker_node && \
$$OK
## Starts a broker, configures users and runs the tests from a different node
run_test_foreground: start_test_broker_node
OK=true && \
{ $(RUN) -noinput $(TESTING_MESSAGE) \
$(SSL_CLIENT_ARGS) $(RUN_TEST_ARGS) \
-s init stop || OK=false; } && \
$(MAKE) stop_test_broker_node && \
$$OK
start_test_broker_node: boot_broker
sleep 1
- $(RABBITMQCTL) delete_user test_user_no_perm
$(RABBITMQCTL) add_user test_user_no_perm test_user_no_perm
sleep 1
stop_test_broker_node:
sleep 1
$(RABBITMQCTL) delete_user test_user_no_perm
$(MAKE) unboot_broker
boot_broker:
$(MAKE) -C $(BROKER_DIR) start-background-node RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS) $(SSL_BROKER_ARGS)"
$(MAKE) -C $(BROKER_DIR) start-rabbit-on-node
unboot_broker:
$(MAKE) -C $(BROKER_DIR) stop-rabbit-on-node
$(MAKE) -C $(BROKER_DIR) stop-node
ssl:
$(SSL)
test_ssl: prepare_tests ssl
$(MAKE) run_test_detached AMQP_CLIENT_TEST_CONNECTION_TYPE="network_ssl" RUN_TEST_ARGS="-s amqp_client_SUITE test"
test_network: prepare_tests
$(MAKE) run_test_detached AMQP_CLIENT_TEST_CONNECTION_TYPE="network" RUN_TEST_ARGS="-s amqp_client_SUITE test"
test_direct: prepare_tests
$(MAKE) run_test_in_broker AMQP_CLIENT_TEST_CONNECTION_TYPE="direct" RUN_TEST_ARGS="-s amqp_client_SUITE test"
test_remote_direct: prepare_tests
$(MAKE) run_test_detached AMQP_CLIENT_TEST_CONNECTION_TYPE="direct" RUN_TEST_ARGS="-s amqp_client_SUITE test"
test_common_package: $(DIST_DIR)/$(COMMON_PACKAGE_EZ) package prepare_tests
$(MAKE) run_test_detached RUN="$(LIBS_PATH) erl -pa $(TEST_DIR)" \
AMQP_CLIENT_TEST_CONNECTION_TYPE="network" RUN_TEST_ARGS="-s amqp_client_SUITE test"
$(MAKE) run_test_detached RUN="$(LIBS_PATH) erl -pa $(TEST_DIR) -sname amqp_client" \
AMQP_CLIENT_TEST_CONNECTION_TYPE="direct" RUN_TEST_ARGS="-s amqp_client_SUITE test"
test_ssl_coverage: prepare_tests ssl
$(MAKE) run_test_detached AMQP_CLIENT_TEST_CONNECTION_TYPE="network_ssl" RUN_TEST_ARGS="-s amqp_client_SUITE test_coverage"
test_network_coverage: prepare_tests
$(MAKE) run_test_detached AMQP_CLIENT_TEST_CONNECTION_TYPE="network" RUN_TEST_ARGS="-s amqp_client_SUITE test_coverage"
test_remote_direct_coverage: prepare_tests
$(MAKE) run_test_detached AMQP_CLIENT_TEST_CONNECTION_TYPE="direct" RUN_TEST_ARGS="-s amqp_client_SUITE test_coverage"
test_direct_coverage: prepare_tests
$(MAKE) run_test_in_broker AMQP_CLIENT_TEST_CONNECTION_TYPE="direct" RUN_TEST_ARGS="-s amqp_client_SUITE test_coverage"