File 2347-kernel-sctp-test-Tweaked-the-def_sndrcvinfo-test-cas.patch of Package erlang
From 8181802c56d1c6f3ce0b4e928038f11657ccc831 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Wed, 7 May 2025 11:52:15 +0200
Subject: [PATCH 7/8] [kernel|sctp|test] Tweaked the def_sndrcvinfo test case
---
lib/kernel/test/gen_sctp_SUITE.erl | 34 +++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/lib/kernel/test/gen_sctp_SUITE.erl b/lib/kernel/test/gen_sctp_SUITE.erl
index d829629749..8350d828fd 100644
--- a/lib/kernel/test/gen_sctp_SUITE.erl
+++ b/lib/kernel/test/gen_sctp_SUITE.erl
@@ -690,6 +690,19 @@ recv_paddr_change(S, Addr, Port, Timeout) ->
%% Test that #sctp_sndrcvinfo{} parameters set on a socket
%% are used by gen_sctp:send/4.
def_sndrcvinfo(Config) when is_list(Config) ->
+ Cond = fun() -> ok end,
+ Pre = fun() -> case ?WHICH_LOCAL_ADDR(inet) of
+ {ok, Addr} ->
+ Addr;
+ {error, Reason} ->
+ throw({skip, Reason})
+ end
+ end,
+ TC = fun(Addr) -> do_def_sndrcvinfo(Addr) end,
+ Post = fun(_) -> ok end,
+ ?TC_TRY(?FUNCTION_NAME, Cond, Pre, TC, Post).
+
+do_def_sndrcvinfo(LAddr) ->
Loopback = {127,0,0,1},
Data = <<"What goes up, must come down.">>,
%%
@@ -812,12 +825,31 @@ def_sndrcvinfo(Config) when is_list(Config) ->
error=0, assoc_id=S1AssocId}}
when State =:= addr_available;
State =:= addr_confirmed ->
+ %% We *may* get an paddr-event before the data event
+ %% (on FreeBSD)
case log_ok(gen_sctp:recv(S1)) of
{Loopback,P2,
[#sctp_sndrcvinfo{
stream=1, ppid=0, context=0,
assoc_id=S1AssocId}],
- <<"3: ",Data/binary>>} -> ok
+ <<"3: ",Data/binary>>} ->
+ ok;
+ {Loopback, P2, [],
+ #sctp_paddr_change{addr = {LAddr, _},
+ state = addr_confirmed,
+ error = 0,
+ assoc_id = S1AssocId}} ->
+ ?P("~w -> paddr-change (addr-confirmed) event "
+ "before data event - receive again",
+ [?FUNCTION_NAME]),
+ {Loopback,P2,
+ [#sctp_sndrcvinfo{
+ stream = 1,
+ ppid = 0,
+ context = 0,
+ assoc_id = S1AssocId}],
+ <<"3: ",Data/binary>>} = log_ok(gen_sctp:recv(S1)),
+ ok
end
end
end,
--
2.43.0