summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-08-26 15:09:07 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-08-26 15:09:07 +0200
commita660b7009a61d1e05c096b518a961720669c0bb9 (patch)
tree1b57d6f3e3f9175c88479937b790c904ff07f415
parenta5cdde115e5373cae4c8a5577549308167540e1d (diff)
downloadrabbitmq-server-git-a660b7009a61d1e05c096b518a961720669c0bb9.tar.gz
per_vhost_connection_limit_SUITE: Add a test around cluster rename
This makes sure the limits are still good after a node was renamed and thus, the tracking tables were recreated with a new name too. While here, do some cleanup in the init/end functions in both the two per-vhost limit testsuite. References #500. [#116521809]
-rw-r--r--test/per_vhost_connection_limit_SUITE.erl74
-rw-r--r--test/per_vhost_connection_limit_partitions_SUITE.erl18
2 files changed, 77 insertions, 15 deletions
diff --git a/test/per_vhost_connection_limit_SUITE.erl b/test/per_vhost_connection_limit_SUITE.erl
index 593819797e..4fae129a35 100644
--- a/test/per_vhost_connection_limit_SUITE.erl
+++ b/test/per_vhost_connection_limit_SUITE.erl
@@ -52,9 +52,18 @@ groups() ->
cluster_single_vhost_zero_limit,
cluster_multiple_vhosts_zero_limit,
cluster_vhost_deletion_forces_connection_closure
+ ]},
+ {cluster_rename, [], [
+ vhost_limit_after_node_renamed
]}
].
+suite() ->
+ [
+ %% If a test hangs, no need to wait for 30 minutes.
+ {timetrap, {minutes, 8}}
+ ].
+
%% see partitions_SUITE
-define(DELAY, 9000).
@@ -74,31 +83,52 @@ end_per_suite(Config) ->
init_per_group(cluster_size_1, Config) ->
init_per_multinode_group(cluster_size_1, Config, 1);
init_per_group(cluster_size_2, Config) ->
- init_per_multinode_group(cluster_size_2, Config, 2).
+ init_per_multinode_group(cluster_size_2, Config, 2);
+init_per_group(cluster_rename, Config) ->
+ init_per_multinode_group(cluster_rename, Config, 2).
-init_per_multinode_group(_GroupName, Config, NodeCount) ->
+init_per_multinode_group(Group, Config, NodeCount) ->
Suffix = rabbit_ct_helpers:testcase_absname(Config, "", "-"),
Config1 = rabbit_ct_helpers:set_config(Config, [
{rmq_nodes_count, NodeCount},
{rmq_nodename_suffix, Suffix}
]),
- rabbit_ct_helpers:run_steps(Config1,
- rabbit_ct_broker_helpers:setup_steps() ++
- rabbit_ct_client_helpers:setup_steps()).
-
+ case Group of
+ cluster_rename ->
+ % The broker is managed by {init,end}_per_testcase().
+ Config1;
+ _ ->
+ rabbit_ct_helpers:run_steps(Config1,
+ rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps())
+ end.
+
+end_per_group(cluster_rename, Config) ->
+ % The broker is managed by {init,end}_per_testcase().
+ Config;
end_per_group(_Group, Config) ->
rabbit_ct_helpers:run_steps(Config,
rabbit_ct_client_helpers:teardown_steps() ++
rabbit_ct_broker_helpers:teardown_steps()).
+init_per_testcase(vhost_limit_after_node_renamed = Testcase, Config) ->
+ rabbit_ct_helpers:testcase_started(Config, Testcase),
+ rabbit_ct_helpers:run_steps(Config,
+ rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps());
init_per_testcase(Testcase, Config) ->
+ rabbit_ct_helpers:testcase_started(Config, Testcase),
clear_all_connection_tracking_tables(Config),
- rabbit_ct_client_helpers:setup_steps(),
- rabbit_ct_helpers:testcase_started(Config, Testcase).
+ Config.
+end_per_testcase(vhost_limit_after_node_renamed = Testcase, Config) ->
+ Config1 = ?config(save_config, Config),
+ rabbit_ct_helpers:run_steps(Config1,
+ rabbit_ct_client_helpers:teardown_steps() ++
+ rabbit_ct_broker_helpers:teardown_steps()),
+ rabbit_ct_helpers:testcase_finished(Config1, Testcase);
end_per_testcase(Testcase, Config) ->
clear_all_connection_tracking_tables(Config),
- rabbit_ct_client_helpers:teardown_steps(),
rabbit_ct_helpers:testcase_finished(Config, Testcase).
clear_all_connection_tracking_tables(Config) ->
@@ -645,6 +675,32 @@ cluster_vhost_deletion_forces_connection_closure(Config) ->
rabbit_ct_broker_helpers:delete_vhost(Config, VHost1).
+vhost_limit_after_node_renamed(Config) ->
+ A = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
+
+ VHost = <<"/renaming_node">>,
+ set_up_vhost(Config, VHost),
+ set_vhost_connection_limit(Config, VHost, 2),
+
+ ?assertEqual(0, count_connections_in(Config, VHost)),
+
+ [Conn1, Conn2, {error, not_allowed}] = open_connections(Config,
+ [{0, VHost}, {1, VHost}, {0, VHost}]),
+ ?assertEqual(2, count_connections_in(Config, VHost)),
+ close_connections([Conn1, Conn2]),
+
+ Config1 = cluster_rename_SUITE:stop_rename_start(Config, A, [A, 'new-A']),
+
+ ?assertEqual(0, count_connections_in(Config1, VHost)),
+
+ [Conn3, Conn4, {error, not_allowed}] = open_connections(Config,
+ [{0, VHost}, {1, VHost}, {0, VHost}]),
+ ?assertEqual(2, count_connections_in(Config1, VHost)),
+ close_connections([Conn3, Conn4]),
+
+ set_vhost_connection_limit(Config1, VHost, -1),
+ {save_config, Config1}.
+
%% -------------------------------------------------------------------
%% Helpers
%% -------------------------------------------------------------------
diff --git a/test/per_vhost_connection_limit_partitions_SUITE.erl b/test/per_vhost_connection_limit_partitions_SUITE.erl
index c7fae3a77c..051f3f13b7 100644
--- a/test/per_vhost_connection_limit_partitions_SUITE.erl
+++ b/test/per_vhost_connection_limit_partitions_SUITE.erl
@@ -38,6 +38,12 @@ groups() ->
]}
].
+suite() ->
+ [
+ %% If a test hangs, no need to wait for 30 minutes.
+ {timetrap, {minutes, 8}}
+ ].
+
%% see partitions_SUITE
-define(DELAY, 12000).
@@ -54,11 +60,11 @@ init_per_suite(Config) ->
end_per_suite(Config) ->
rabbit_ct_helpers:run_teardown_steps(Config).
-init_per_group(net_ticktime_1 = GroupName, Config) ->
+init_per_group(net_ticktime_1 = Group, Config) ->
Config1 = rabbit_ct_helpers:set_config(Config, [{net_ticktime, 1}]),
- init_per_multinode_group(GroupName, Config1, 3).
+ init_per_multinode_group(Group, Config1, 3).
-init_per_multinode_group(_GroupName, Config, NodeCount) ->
+init_per_multinode_group(_Group, Config, NodeCount) ->
Suffix = rabbit_ct_helpers:testcase_absname(Config, "", "-"),
Config1 = rabbit_ct_helpers:set_config(Config, [
{rmq_nodes_count, NodeCount},
@@ -66,21 +72,21 @@ init_per_multinode_group(_GroupName, Config, NodeCount) ->
{rmq_nodes_clustered, false}
]),
rabbit_ct_helpers:run_steps(Config1,
- rabbit_ct_broker_helpers:setup_steps() ++ [
+ rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps() ++ [
fun rabbit_ct_broker_helpers:enable_dist_proxy/1,
fun rabbit_ct_broker_helpers:cluster_nodes/1
]).
end_per_group(_Group, Config) ->
rabbit_ct_helpers:run_steps(Config,
+ rabbit_ct_client_helpers:teardown_steps() ++
rabbit_ct_broker_helpers:teardown_steps()).
init_per_testcase(Testcase, Config) ->
- rabbit_ct_client_helpers:setup_steps(),
rabbit_ct_helpers:testcase_started(Config, Testcase).
end_per_testcase(Testcase, Config) ->
- rabbit_ct_client_helpers:teardown_steps(),
rabbit_ct_helpers:testcase_finished(Config, Testcase).
%% -------------------------------------------------------------------