summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2013-01-24 12:37:39 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2013-01-24 12:37:39 +0000
commit528556fa93c522c12c10e761d4aea0e7fb0bbde2 (patch)
tree3aa43c3b289770ea2c83a730b73427d2fea4ca3a
parent5e5d65352238b22262e71031c75918c8299c7256 (diff)
downloadrabbitmq-server-528556fa93c522c12c10e761d4aea0e7fb0bbde2.tar.gz
add some tests for connection refusal
some of this is also tested in the Java client, but I'd rather have it all in one place here.
-rw-r--r--src/rabbit_tests.erl25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl
index 87fc6078..95e23d29 100644
--- a/src/rabbit_tests.erl
+++ b/src/rabbit_tests.erl
@@ -62,6 +62,7 @@ all_tests() ->
passed = test_runtime_parameters(),
passed = test_policy_validation(),
passed = test_server_status(),
+ passed = test_amqp_connection_refusal(),
passed = test_confirms(),
passed =
do_if_secondary_node(
@@ -1143,10 +1144,7 @@ test_server_status() ->
rabbit_misc:r(<<"/">>, queue, <<"foo">>)),
%% list connections
- [#listener{host = H, port = P} | _] =
- [L || L = #listener{node = N} <- rabbit_networking:active_listeners(),
- N =:= node()],
-
+ {H, P} = find_listener(),
{ok, C} = gen_tcp:connect(H, P, []),
gen_tcp:send(C, <<"AMQP", 0, 0, 9, 1>>),
timer:sleep(100),
@@ -1185,6 +1183,25 @@ test_server_status() ->
passed.
+test_amqp_connection_refusal() ->
+ [passed = test_amqp_connection_refusal(V) ||
+ V <- [<<"AMQP",9,9,9,9>>, <<"AMQP",0,1,0,0>>, <<"XXXX",0,0,9,1>>]],
+ passed.
+
+test_amqp_connection_refusal(Header) ->
+ {H, P} = find_listener(),
+ {ok, C} = gen_tcp:connect(H, P, [binary, {active, false}]),
+ ok = gen_tcp:send(C, Header),
+ {ok, <<"AMQP",0,0,9,1>>} = gen_tcp:recv(C, 8, 100),
+ ok = gen_tcp:close(C),
+ passed.
+
+find_listener() ->
+ [#listener{host = H, port = P} | _] =
+ [L || L = #listener{node = N} <- rabbit_networking:active_listeners(),
+ N =:= node()],
+ {H, P}.
+
test_writer(Pid) ->
receive
shutdown -> ok;