summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2018-11-22 11:32:29 +0000
committerDiana Corbacho <diana@rabbitmq.com>2018-11-22 11:32:29 +0000
commit612ed35994feb626e1fbc28c15bc09158dd5d19f (patch)
treee9f6f72ffe064f9d0bafc23903a8aa75fe8d5b81 /test
parent644b0eca35e4e8d8dbecb4232b0b37870dcf6ed1 (diff)
parentaf68fc873ef7b34eba922cedac0e62b99adf1dd0 (diff)
downloadrabbitmq-server-git-612ed35994feb626e1fbc28c15bc09158dd5d19f.tar.gz
Merge branch 'master' into qq-dlx-policy
Diffstat (limited to 'test')
-rw-r--r--test/quorum_queue_SUITE.erl29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/quorum_queue_SUITE.erl b/test/quorum_queue_SUITE.erl
index 4a175af6e2..731a7277c1 100644
--- a/test/quorum_queue_SUITE.erl
+++ b/test/quorum_queue_SUITE.erl
@@ -36,6 +36,7 @@ groups() ->
{cluster_size_2, [], [add_member]}
]},
{clustered, [], [
+ {cluster_size_2, [], [cleanup_data_dir]},
{cluster_size_2, [], [add_member_not_running,
add_member_classic,
add_member_already_a_member,
@@ -1612,6 +1613,34 @@ delete_member(Config) ->
rpc:call(Server, rabbit_quorum_queue, delete_member,
[<<"/">>, QQ, Server])).
+cleanup_data_dir(Config) ->
+ %% This test is slow, but also checks that we handle properly errors when
+ %% trying to delete a queue in minority. A case clause there had gone
+ %% previously unnoticed.
+
+ [Server1, Server2] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
+ Ch = rabbit_ct_client_helpers:open_channel(Config, Server1),
+ QQ = ?config(queue_name, Config),
+ ?assertEqual({'queue.declare_ok', QQ, 0, 0},
+ declare(Ch, QQ, [{<<"x-queue-type">>, longstr, <<"quorum">>}])),
+ timer:sleep(100),
+
+ [{_, UId}] = rpc:call(Server1, ra_directory, list_registered, []),
+ DataDir = rpc:call(Server1, ra_env, server_data_dir, [UId]),
+ ?assert(filelib:is_dir(DataDir)),
+
+ ok = rabbit_ct_broker_helpers:stop_node(Config, Server2),
+
+ ?assertExit({{shutdown,
+ {connection_closing, {server_initiated_close, 541, _}}}, _},
+ amqp_channel:call(Ch, #'queue.delete'{queue = QQ})),
+ ?assert(filelib:is_dir(DataDir)),
+
+ ?assertEqual(ok,
+ rpc:call(Server1, rabbit_quorum_queue, cleanup_data_dir,
+ [])),
+ ?assert(not filelib:is_dir(DataDir)).
+
basic_recover(Config) ->
[Server | _] = Servers = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),