From 5228664f1fd41fa3c6e894dd0650d79d906f951b Mon Sep 17 00:00:00 2001
From: Siri Hansen <siri@erlang.org>
Date: Mon, 15 Apr 2013 14:54:38 +0200
Subject: [common_test] Kill slave nodes after test cases in cover_SUITE

The test case cover_SUITE:slave_start_slave often fails on a test host
(windows) due to a hanging node from an earlier test run. In the first
test, the slave fails to start (boot_timeout?) and is never connected
to the test node. The attempt at cleaning up used nodes() to find
which slaves to kill - so in the case where the slave was never
connected it was never killed. This is no changed so each slave is
explicitly killed by name - no matter if it is pingable or not.
---
 .../test/ct_cover_SUITE_data/cover_SUITE.erl       | 36 ++++++++++------------
 1 file changed, 17 insertions(+), 19 deletions(-)

diff --git a/lib/common_test/test/ct_cover_SUITE_data/cover_SUITE.erl b/lib/common_test/test/ct_cover_SUITE_data/cover_SUITE.erl
index d967590c72..8142bf14dc 100644
--- a/lib/common_test/test/ct_cover_SUITE_data/cover_SUITE.erl
+++ b/lib/common_test/test/ct_cover_SUITE_data/cover_SUITE.erl
@@ -52,11 +52,10 @@ init_per_testcase(_Case, Config) ->
     [{watchdog, Dog}|Config].
 
 end_per_testcase(Case, Config) ->
-    %% try apply(?MODULE,Case,[cleanup,Config])
-    %% catch error:undef -> ok
-    %% end,
+    try apply(?MODULE,Case,[cleanup,Config])
+    catch error:undef -> ok
+    end,
 
-    kill_slaves(Case,nodes()),
     Dog=?config(watchdog, Config),
     test_server:timetrap_cancel(Dog),
     ok.
@@ -67,12 +66,12 @@ break(_Config) ->
     test_server:break(""),
     ok.
 
-default(Config) ->
+default(_Config) ->
     cover_compiled = code:which(cover_test_mod),
     cover_test_mod:foo(),
     ok.
 
-slave(Config) ->
+slave(_Config) ->
     cover_compiled = code:which(cover_test_mod),
     cover_test_mod:foo(),
     N1 = nodename(slave,1),
@@ -81,8 +80,10 @@ slave(Config) ->
     rpc:call(Node,cover_test_mod,foo,[]),
     {ok,Node} = ct_slave:stop(N1),
     ok.
+slave(cleanup,_Config) ->
+    kill_slaves([nodename(slave,1)]).
 
-slave_start_slave(Config) ->
+slave_start_slave(_Config) ->
     cover_compiled = code:which(cover_test_mod),
     cover_test_mod:foo(),
     N1 = nodename(slave_start_slave,1),
@@ -95,8 +96,11 @@ slave_start_slave(Config) ->
     {ok,Node2} = rpc:call(Node,ct_slave,stop,[N2]),
     {ok,Node} = ct_slave:stop(N1),
     ok.
+slave_start_slave(cleanup,_Config) ->
+    kill_slaves([nodename(slave_start_slave,1),
+		 nodename(slave_start_slave,2)]).
 
-cover_node_option(Config) ->
+cover_node_option(_Config) ->
     cover_compiled = code:which(cover_test_mod),
     cover_test_mod:foo(),
     Node = fullname(existing_node_1),
@@ -104,7 +108,7 @@ cover_node_option(Config) ->
     rpc:call(Node,cover_test_mod,foo,[]),
     ok.
 
-ct_cover_add_remove_nodes(Config) ->
+ct_cover_add_remove_nodes(_Config) ->
     cover_compiled = code:which(cover_test_mod),
     cover_test_mod:foo(),
     Node = fullname(existing_node_2),
@@ -143,16 +147,10 @@ fullname(Name) ->
     {ok,Host} = inet:gethostname(),
     list_to_atom(atom_to_list(Name) ++ "@" ++ Host).
 
-kill_slaves(Case, [Node|Nodes]) ->
-    Prefix = nodeprefix(Case),
-    case lists:prefix(Prefix,atom_to_list(Node)) of
-	true ->
-	    rpc:call(Node,erlang,halt,[]);
-	_ ->
-	    ok
-    end,
-    kill_slaves(Case,Nodes);
-kill_slaves(_,[]) ->
+kill_slaves([Name|Names]) ->
+    _ = rpc:call(fullname(Name),erlang,halt,[]),
+    kill_slaves(Names);
+kill_slaves([]) ->
     ok.
 
 start_slave(Name) ->
-- 
cgit v1.2.3