diff options
author | Siri Hansen <[email protected]> | 2012-12-19 16:05:08 +0100 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2012-12-20 16:44:05 +0100 |
commit | 6e9038f942dbe5f7968c2f6467f3d85a7fe458a2 (patch) | |
tree | 6812432f064a94a52e43a582a2c07c8e1284e61d /lib/common_test/src/ct_slave.erl | |
parent | 8100f5b8156a446081813fc8167059171d90b817 (diff) | |
download | otp-6e9038f942dbe5f7968c2f6467f3d85a7fe458a2.tar.gz otp-6e9038f942dbe5f7968c2f6467f3d85a7fe458a2.tar.bz2 otp-6e9038f942dbe5f7968c2f6467f3d85a7fe458a2.zip |
[common_test] Stop cover on slave node after node is terminated
Before terminating slave nodes, common_test calls cover:flush/1 to
fetch data from the node without actually stopping cover on this
node. If cover is not stopped for the node and a new node with the
same name is started, then cover will be started on the new node. To
avoid this common_test now calls cover:stop/1 after the slave node is
terminated.
Diffstat (limited to 'lib/common_test/src/ct_slave.erl')
-rw-r--r-- | lib/common_test/src/ct_slave.erl | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/lib/common_test/src/ct_slave.erl b/lib/common_test/src/ct_slave.erl index 58633b7de6..1fd8c04f8b 100644 --- a/lib/common_test/src/ct_slave.erl +++ b/lib/common_test/src/ct_slave.erl @@ -449,15 +449,29 @@ wait_for_node_alive(Node, N) -> % call init:stop on a remote node do_stop(ENode) -> - case test_server:is_cover() of - true -> - MainCoverNode = cover:get_main_node(), - rpc:call(MainCoverNode,cover,flush,[ENode]); - false -> - ok + {Cover,MainCoverNode} = + case test_server:is_cover() of + true -> + Main = cover:get_main_node(), + rpc:call(Main,cover,flush,[ENode]), + {true,Main}; + false -> + {false,undefined} end, spawn(ENode, init, stop, []), - wait_for_node_dead(ENode, 5). + case wait_for_node_dead(ENode, 5) of + {ok,ENode} -> + if Cover -> + %% To avoid that cover is started again if a node + %% with the same name is started later. + rpc:call(MainCoverNode,cover,stop,[ENode]); + true -> + ok + end, + {ok,ENode}; + Error -> + Error + end. % wait N seconds until node is disconnected wait_for_node_dead(Node, 0) -> |