File 2430-kernel-test-Fixed-get-if-entry-test-case.patch of Package erlang

From 4ba7aa6b509cd18540d7065c8ff21090f482ad30 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Thu, 19 Jun 2025 09:47:22 +0200
Subject: [PATCH 10/14] [kernel|test] Fixed get-if-entry test case

On Solaris (OpenIndiana) we fail even earlier, since
we fail to retrieve indexes (enotsup). So we need to
be able to handle that special (skip-) case also.

OTP-19674
---
 lib/kernel/test/prim_net_SUITE.erl | 57 +++++++++++++++++-------------
 1 file changed, 32 insertions(+), 25 deletions(-)

diff --git a/lib/kernel/test/prim_net_SUITE.erl b/lib/kernel/test/prim_net_SUITE.erl
index d7f9d886d5..4f7d1e76a3 100644
--- a/lib/kernel/test/prim_net_SUITE.erl
+++ b/lib/kernel/test/prim_net_SUITE.erl
@@ -486,29 +486,31 @@ gaa_verify_addr(Addr, FilterFam) ->
 
 get_if_entry(_Config) when is_list(_Config) ->
     ?TT(?SECS(10)),
-    tc_try(?FUNCTION_NAME,
-	   fun() -> ok end,
-           fun() ->
+    Cond = fun() -> ok end,
+    Pre  = fun() ->
+                   case net:if_names() of
+                       {ok, IfNames} ->
+                           #{idxs => IfNames};
+                       {error, enotsup = NOTSUP} ->
+                           skip(NOTSUP);
+                       {error, Reason} ->
+                           exit({pre, if_names, Reason})
+                   end
+           end,
+    TC   = fun(#{idxs := Idxs}) ->
                    try
-                       ok = do_get_if_entry()
+                       ok = do_get_if_entry(Idxs)
                    catch
                        error:notsup = NOTSUP ->
                            skip(NOTSUP)
                    end
-           end).
+           end,
+    Post = fun(_) -> ok end,
+    tc_try(?FUNCTION_NAME, Cond, Pre, TC, Post).
 
-do_get_if_entry() ->
-    %% Just ensure we get an entry for every if
-    ?P("try validate known interfaces"),
-    {ok, IfNames} = net:if_names(),
-    Idxs =
-	case [Idx || {Idx, _} <- IfNames] of
-	    [] ->
-		exit({skip, no_ifs});
-	    L ->
-		L
-	end,
-    ok = do_get_if_entry(Idxs),
+do_get_if_entry(Idxs) ->
+    ?P("try validate known interface(s)"),
+    ok = do_get_if_entry2(Idxs),
 
     %% Ask for an index that we know does not exit
     ?P("try validate *not* known interface"),
@@ -523,17 +525,19 @@ do_get_if_entry() ->
 	    ?P("unexpected success requesting non-existing if entry ~w:"
 	       "~n   ~p", [InvalidIdx, Entry]),
 	    exit(unexpected_success)
-    end.
+    end,
+    ?P("done"),
+    ok.
 
 
-do_get_if_entry([]) ->
+do_get_if_entry2([]) ->
     ok;
-do_get_if_entry([Idx|Idxs]) ->
+do_get_if_entry2([Idx|Idxs]) ->
     case prim_net:get_if_entry(#{index => Idx}) of
 	{ok, Entry} ->
-	    ?P("expected success retreiving if entry ~w: "
+	    ?P("expected success retreiving of entry ~w: "
 	       "~n   ~p", [Idx, Entry]),
-	    do_get_if_entry(Idxs);
+	    do_get_if_entry2(Idxs);
 	{error, Reason} ->
 	    ?P("unexpected failure retreiving if entry ~w: "
 	       "~n   ~p", [Idx, Reason]),
@@ -655,9 +659,12 @@ skip(Reason) ->
 %% tc_try(Case, TCFun) ->
 %%     ?TC_TRY(Case, TCFun).
 
-tc_try(Case, TCCondFun, TCFun) ->
-    ?TC_TRY(Case, TCCondFun, TCFun).
-   
+tc_try(Case, Cond, TC) ->
+    ?TC_TRY(Case, Cond, TC).
+
+tc_try(Case, Cond, Pre, TC, Post) ->
+    ?TC_TRY(Case, Cond, Pre, TC, Post).
+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-- 
2.43.0

openSUSE Build Service is sponsored by