File 2429-kernel-enet-test-Add-ip-address-table-test-case.patch of Package erlang
From 1f891dba54724bfddb14fa926512247cab409fa8 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Thu, 12 Jun 2025 07:58:38 +0200
Subject: [PATCH 09/14] [kernel{enet{test] Add ip-address-table test case
OTP-19674
---
lib/kernel/test/prim_net_SUITE.erl | 52 ++++++++++++++++++++++++++++--
1 file changed, 50 insertions(+), 2 deletions(-)
diff --git a/lib/kernel/test/prim_net_SUITE.erl b/lib/kernel/test/prim_net_SUITE.erl
index 16b7b2d917..d7f9d886d5 100644
--- a/lib/kernel/test/prim_net_SUITE.erl
+++ b/lib/kernel/test/prim_net_SUITE.erl
@@ -73,7 +73,8 @@
-export([
get_adapters_addresses/1,
get_if_entry/1,
- get_interface_info/1
+ get_interface_info/1,
+ get_ip_address_table/1
]).
@@ -107,7 +108,8 @@ misc_cases() ->
[
get_adapters_addresses,
get_if_entry,
- get_interface_info
+ get_interface_info,
+ get_ip_address_table
].
@@ -582,6 +584,52 @@ gii_verify_result([IF | IFs]) ->
end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This function retrieves the interface-to-IPv4 address mapping table.
+%% The only option is if we want the table sorted in ascending order by
+%% IPv4 address.
+
+get_ip_address_table(_Config) when is_list(_Config) ->
+ ?TT(?SECS(10)),
+ tc_try(?FUNCTION_NAME,
+ fun() -> ?HAS_SUPPORT_IPV4() end,
+ fun() ->
+ try
+ ok = do_get_ip_addr_table()
+ catch
+ error:notsup = NOTSUP ->
+ skip(NOTSUP)
+ end
+ end).
+
+do_get_ip_addr_table() ->
+ {ok, _} = prim_net:get_ip_address_table(#{}), % Default: sort = false
+ {ok, _} = prim_net:get_ip_address_table(#{sort => false}), % Default
+ {ok, Sorted} = prim_net:get_ip_address_table(#{sort => true}),
+ ok = giat_verify_result(Sorted),
+ {ok, _} = prim_net:get_ip_address_table(#{sort => tomat}), % Default
+ ok.
+
+
+giat_verify_result(Sorted) ->
+ giat_verify_result(Sorted, undefined).
+
+giat_verify_result([], _Addr0) ->
+ ?P("all entries verified"),
+ ok;
+giat_verify_result([#{index := Idx, addr := Addr} | Tab], undefined) ->
+ ?P("first entry: "
+ "~n Index: ~p"
+ "~n Addr: ~p", [Idx, Addr]),
+ giat_verify_result(Tab, Addr);
+giat_verify_result([#{index := Idx, addr := Addr} | Tab], Addr0)
+ when (Addr > Addr0) ->
+ ?P("entry verified: "
+ "~n Index: ~p"
+ "~n Addr: ~p (> ~p)", [Idx, Addr, Addr0]),
+ giat_verify_result(Tab, Addr).
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% not_supported(What) ->
--
2.43.0