diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2013-01-24 12:37:39 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2013-01-24 12:37:39 +0000 |
commit | 528556fa93c522c12c10e761d4aea0e7fb0bbde2 (patch) | |
tree | 3aa43c3b289770ea2c83a730b73427d2fea4ca3a | |
parent | 5e5d65352238b22262e71031c75918c8299c7256 (diff) | |
download | rabbitmq-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.erl | 25 |
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; |