File 6651-kernel-erl_distribution_SUITE-test-fixes.patch of Package erlang

From 073c8b1f16b57c5f206557586f5458d76d6f6692 Mon Sep 17 00:00:00 2001
From: Rickard Green <rickard@erlang.org>
Date: Tue, 31 May 2022 17:04:34 +0200
Subject: [PATCH] [kernel] erl_distribution_SUITE test fixes

---
 lib/kernel/test/erl_distribution_SUITE.erl | 52 +++++++++++++---------
 1 file changed, 32 insertions(+), 20 deletions(-)

diff --git a/lib/kernel/test/erl_distribution_SUITE.erl b/lib/kernel/test/erl_distribution_SUITE.erl
index ad1b415bc7..b242bb49da 100644
--- a/lib/kernel/test/erl_distribution_SUITE.erl
+++ b/lib/kernel/test/erl_distribution_SUITE.erl
@@ -220,14 +220,14 @@ tick_test(DCfg, _Config, CheckIntensityArg) ->
 				"-kernel net_ticktime 100 -connect_all false"),
     rpc:call(ServNode, erl_distribution_SUITE, tick_serv_test, [Node, node()]),
 
-    %% We set min/max half a second lower/higher than expected since it
-    %% takes time for termination dist controller, delivery of messages
-    %% scheduling of process receiving nodedown, etc...
+    %% We set min/max a second lower/higher than expected since it takes
+    %% time for termination of the dist controller, delivery of messages,
+    %% scheduling of the process receiving nodedown, etc...
     {IArg, Min, Max} = case CheckIntensityArg of
                            false ->
-                               {"", 7500, 16500};
+                               {"", 7000, 17000};
                            true ->
-                               {" -kernel net_tickintensity 24", 11000, 13000}
+                               {" -kernel net_tickintensity 24", 10500, 13500}
                        end,
     
     {ok, Node} = start_node(DCfg, Name1,
@@ -577,15 +577,14 @@ wait_for_names(Names, N, Wait) when N > 0 ->
 
 
 dyn_node_name(Config) when is_list(Config) ->
-    %%run_dist_configs(fun dyn_node_name/2, Config).
-    dyn_node_name("", Config).
+    run_dist_configs(fun dyn_node_name/2, Config).
 
 dyn_node_name(DCfg, _Config) ->
     NameDomain = case net_kernel:get_state() of
                      #{name_domain := shortnames} -> "shortnames";
                      #{name_domain := longnames} -> "longnames"
                  end,
-    {_N1F,Port1} = start_node_unconnected(DCfg ++ " -dist_listen false",
+    {_N1F,Port1} = start_node_unconnected(DCfg,
                                           undefined, ?MODULE, run_remote_test,
                                           ["dyn_node_name_do", atom_to_list(node()),
                                            NameDomain]),
@@ -610,15 +609,21 @@ dyn_node_name_do(TestNode, [NameDomainStr]) ->
       name_domain := NameDomain} = net_kernel:get_state(),
     check([MyName], rpc:call(TestNode, erlang, nodes, [hidden])),
 
-    {nodeup, MyName, [{node_type, visible}]} = receive_any(0),
-    {nodeup, TestNode, [{node_type, hidden}]} = receive_any(0),
+    {nodeup, MyName, [{node_type, visible}]} = receive_any(),
+    {nodeup, TestNode, [{node_type, hidden}]} = receive_any(),
 
     true = net_kernel:disconnect(TestNode),
 
-    {nodedown, TestNode, [{node_type, hidden}]} = receive_any(0),
-    [] = nodes(hidden),
-    {nodedown, MyName, [{node_type, visible}]} = receive_any(1000),
+    %% We don't know the order of these nodedown messages. Often
+    %% nodedown from the connection comes first, but not always...
+
+    NodedownMsgsA = lists:sort([{nodedown, TestNode, [{node_type, hidden}]},
+                                {nodedown, MyName, [{node_type, visible}]}]),
+    NodedownMsgA1 = receive_any(),
+    NodedownMsgA2 = receive_any(),
+    NodedownMsgsA = lists:sort([NodedownMsgA1, NodedownMsgA2]),
 
+    [] = nodes(hidden),
     nonode@nohost = node(),
     #{started := static, name_type := dynamic, name := undefined,
       name_domain := NameDomain} = net_kernel:get_state(),
@@ -632,14 +637,21 @@ dyn_node_name_do(TestNode, [NameDomainStr]) ->
 
     check([MyName], rpc:call(TestNode, erlang, nodes, [hidden])),
 
-    {nodeup, MyName, [{node_type, visible}]} = receive_any(0),
-    {nodeup, TestNode, [{node_type, hidden}]} = receive_any(0),
+    {nodeup, MyName, [{node_type, visible}]} = receive_any(),
+    {nodeup, TestNode, [{node_type, hidden}]} = receive_any(),
 
     true = rpc:cast(TestNode, net_kernel, disconnect, [MyName]),
 
-    {nodedown, TestNode, [{node_type, hidden}]} = receive_any(1000),
+    %% We don't know the order of these nodedown messages. Often
+    %% nodedown from the connection comes first, but not always...
+
+    NodedownMsgsB = lists:sort([{nodedown, TestNode, [{node_type, hidden}]},
+                                {nodedown, MyName, [{node_type, visible}]}]),
+    NodedownMsgB1 = receive_any(),
+    NodedownMsgB2 = receive_any(),
+    NodedownMsgsB = lists:sort([NodedownMsgB1, NodedownMsgB2]),
+
     [] = nodes(hidden),
-    {nodedown, MyName, [{node_type, visible}]} = receive_any(1000),
     nonode@nohost = node(),
     #{started := static, name_type := dynamic, name := undefined,
       name_domain := NameDomain} = net_kernel:get_state(),
@@ -1231,9 +1243,9 @@ monitor_nodes_nodedown_reason(DCfg, _Config) ->
     Names = get_numbered_nodenames(5, node),
     [NN1, NN2, NN3, NN4, NN5] = Names,
 
-    {ok, N1} = start_node(DCfg, NN1),
-    {ok, N2} = start_node(DCfg, NN2),
-    {ok, N3} = start_node(DCfg, NN3),
+    {ok, N1} = start_node(DCfg, NN1, "-connect_all false"),
+    {ok, N2} = start_node(DCfg, NN2, "-connect_all false"),
+    {ok, N3} = start_node(DCfg, NN3, "-connect_all false"),
     {ok, N4} = start_node(DCfg, NN4, "-hidden"),
 
     receive {nodeup, N1} -> ok end,
-- 
2.35.3

openSUSE Build Service is sponsored by