File 5786-kernel-net-test-Extend-getifaddrs-test-case.patch of Package erlang

From bb399793ec1426ca9dbd5d3f956631bcd00318a8 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Tue, 16 Apr 2024 11:18:43 +0200
Subject: [PATCH 06/18] [kernel|net|test] Extend getifaddrs test case

---
 lib/kernel/test/net_SUITE.erl | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/lib/kernel/test/net_SUITE.erl b/lib/kernel/test/net_SUITE.erl
index bef17f0476..c9f649a8da 100644
--- a/lib/kernel/test/net_SUITE.erl
+++ b/lib/kernel/test/net_SUITE.erl
@@ -263,6 +263,8 @@ api_b_getifaddrs() ->
         {ok, IfAddrs} ->
             i("IfAddrs: "
               "~n   ~p", [IfAddrs]),
+            verify_broadcast(IfAddrs),
+            verify_loopback(IfAddrs),
             ok;
         {error, enotsup = Reason} ->
             i("getifaddrs not supported - skipping"),
@@ -302,6 +304,37 @@ api_b_getifaddrs() ->
             skip(CReason)
     end.
 
+
+verify_broadcast([]) ->
+    ok;
+verify_broadcast([#{flags     := Flags,
+                    broadaddr := _} = IfAddr|IfAddrs]) ->
+    %% Must have the 'broadcast' flag
+    case lists:member(broadcast, Flags) of
+        true ->
+            verify_broadcast(IfAddrs);
+        false ->
+            ?FAIL({missing_broadcast_flag, IfAddr})
+    end;
+verify_broadcast([_|IfAddrs]) ->
+    verify_broadcast(IfAddrs).
+
+verify_loopback([]) ->
+    ok;
+verify_loopback([#{name  := "lo",
+                   flags := Flags,
+                   addr  := _Addr} = IfAddr|IfAddrs]) ->
+    %% Must have the 'broadcast' flag
+    case lists:member(loopback, Flags) of
+        true ->
+            verify_loopback(IfAddrs);
+        false ->
+            ?FAIL({missing_loopback_flag, IfAddr})
+    end;
+verify_loopback([_|IfAddrs]) ->
+    verify_loopback(IfAddrs).
+
+
 win_getifaddrs_ife({ok, II}, {ok, AT}) ->
     IDX1 = [IDX || #{index := IDX} <- II],
     IDX2 = [IDX || #{index := IDX} <- AT],
-- 
2.35.3

openSUSE Build Service is sponsored by