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