test: fix hang when calling `ct_slave:stop` on a `slave` started node
Some tests use the `slave` module for better readability. But, when shutting those nodes down, if one uses `ct_slave` on them, they will hang. This'll make CT wait until the timetrap (default 30 min) before failing `end_per_testcase`.
This commit is contained in:
parent
1d745d2bc3
commit
4b8d4b3583
|
@ -56,6 +56,7 @@ start_slave(Name, Opts) ->
|
||||||
throw(Other)
|
throw(Other)
|
||||||
end,
|
end,
|
||||||
pong = net_adm:ping(Node),
|
pong = net_adm:ping(Node),
|
||||||
|
put_slave_mod(Node, SlaveMod),
|
||||||
setup_node(Node, Opts),
|
setup_node(Node, Opts),
|
||||||
Node.
|
Node.
|
||||||
|
|
||||||
|
@ -70,11 +71,14 @@ make_node_name(Name) ->
|
||||||
|
|
||||||
stop_slave(Node0) ->
|
stop_slave(Node0) ->
|
||||||
Node = make_node_name(Node0),
|
Node = make_node_name(Node0),
|
||||||
|
SlaveMod = get_slave_mod(Node),
|
||||||
|
erase_slave_mod(Node),
|
||||||
case rpc:call(Node, ekka, leave, []) of
|
case rpc:call(Node, ekka, leave, []) of
|
||||||
ok -> ok;
|
ok -> ok;
|
||||||
{badrpc, nodedown} -> ok
|
{badrpc, nodedown} -> ok
|
||||||
end,
|
end,
|
||||||
case ct_slave:stop(Node) of
|
case SlaveMod:stop(Node) of
|
||||||
|
ok -> ok;
|
||||||
{ok, _} -> ok;
|
{ok, _} -> ok;
|
||||||
{error, not_started, _} -> ok
|
{error, not_started, _} -> ok
|
||||||
end.
|
end.
|
||||||
|
@ -167,3 +171,16 @@ check_consistent_view([{View, Node} | Rest], Acc) ->
|
||||||
|
|
||||||
add_to_list(Node, Nodes) when is_list(Nodes) -> [Node | Nodes];
|
add_to_list(Node, Nodes) when is_list(Nodes) -> [Node | Nodes];
|
||||||
add_to_list(Node, Node1) -> [Node, Node1].
|
add_to_list(Node, Node1) -> [Node, Node1].
|
||||||
|
|
||||||
|
put_slave_mod(Node, SlaveMod) ->
|
||||||
|
put({?MODULE, Node}, SlaveMod),
|
||||||
|
ok.
|
||||||
|
|
||||||
|
get_slave_mod(Node) ->
|
||||||
|
case get({?MODULE, Node}) of
|
||||||
|
undefined -> ct_slave;
|
||||||
|
SlaveMod -> SlaveMod
|
||||||
|
end.
|
||||||
|
|
||||||
|
erase_slave_mod(Node) ->
|
||||||
|
erase({?MODULE, Node}).
|
||||||
|
|
Loading…
Reference in New Issue