summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniil Fedotov <daniil@rabbitmq.com>2017-03-30 12:03:18 +0100
committerGerhard Lazu <gerhard@rabbitmq.com>2017-03-30 12:03:18 +0100
commit8b916e764013295370a4509fc84cb4c5b12dea1d (patch)
treef052266d03817276108f44d10e5d9237e1db5d85 /test
parentbf9cb65478d7601e4990f70e76d7963e948b2c7e (diff)
downloadrabbitmq-server-git-8b916e764013295370a4509fc84cb4c5b12dea1d.tar.gz
Add tests to check for errors during node shutdown
Signed-off-by: Gerhard Lazu <gerhard@rabbitmq.com> [finishes #142701219]
Diffstat (limited to 'test')
-rw-r--r--test/rabbitmqctl_shutdown_SUITE.erl37
1 files changed, 21 insertions, 16 deletions
diff --git a/test/rabbitmqctl_shutdown_SUITE.erl b/test/rabbitmqctl_shutdown_SUITE.erl
index 6f681a697b..d859521a22 100644
--- a/test/rabbitmqctl_shutdown_SUITE.erl
+++ b/test/rabbitmqctl_shutdown_SUITE.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is GoPivotal, Inc.
-%% Copyright (c) 2016 Pivotal Software, Inc. All rights reserved.
+%% Copyright (c) 2017 Pivotal Software, Inc. All rights reserved.
%%
-module(rabbitmqctl_shutdown_SUITE).
@@ -22,20 +22,15 @@
all() ->
[
- {group, shutdown_running_node}%,
- % {group, shutdown_not_running_node}
+ {group, running_node}
].
groups() ->
- StopTests = [
- shutdown_fails_if_unable_to_contact_node,
- shutdown_fails_if_unable_to_stop
- ],
[
- {shutdown_running_node, [],
- % StopTests ++
- [shutdown_running_node_ok]},
- {shutdown_not_running_node, [], StopTests}
+ {running_node, [], [
+ successful_shutdown,
+ error_during_shutdown
+ ]}
].
init_per_suite(Config) ->
@@ -45,19 +40,19 @@ init_per_suite(Config) ->
end_per_suite(Config) ->
rabbit_ct_helpers:run_teardown_steps(Config).
-init_per_group(shutdown_running_node, Config) ->
+init_per_group(running_node, Config) ->
rabbit_ct_helpers:set_config(Config, [
{rmq_nodename_suffix, ?MODULE},
{need_start, true}
]);
-init_per_group(shutdown_not_running_node, Config) ->
+init_per_group(non_running_node, Config) ->
rabbit_ct_helpers:set_config(Config, [
{rmq_nodename_suffix, ?MODULE}
]).
-end_per_group(shutdown_running_node, Config) ->
+end_per_group(running_node, Config) ->
rabbit_ct_helpers:run_teardown_steps(Config, []);
-end_per_group(shutdown_not_running_node, Config) ->
+end_per_group(non_running_node, Config) ->
rabbit_ct_helpers:run_teardown_steps(Config, []).
init_per_testcase(Testcase, Config0) ->
@@ -85,13 +80,23 @@ save_node(Config) ->
Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
rabbit_ct_helpers:set_config(Config, [{node, Node}]).
-shutdown_running_node_ok(Config) ->
+successful_shutdown(Config) ->
Node = ?config(node, Config),
Pid = node_pid(Node),
ok = rabbit_control_main:action(shutdown, Node, [], [], fun ct:pal/2),
false = erlang_pid_is_running(Pid),
false = node_is_running(Node).
+error_during_shutdown(Config) ->
+ Node = ?config(node, Config),
+ ok = rabbit_control_main:action(stop_app, Node, [], [], fun ct:pal/2),
+ ok = rpc:call(Node, application, unload, [os_mon]),
+
+ {
+ badrpc, {'EXIT',
+ {{error, {badmatch, {error,{edge,{bad_vertex,os_mon},os_mon,rabbit}}}}, _}}
+ } = rabbit_control_main:action(shutdown, Node, [], [], fun ct:pal/2).
+
node_pid(Node) ->
Val = rpc:call(Node, os, getpid, []),
true = is_list(Val),