File 3021-kernel-test-Tweaked-simple-test-case.patch of Package erlang
From 694fa1c6a8c79eddb13ba713cb5270d2ce16618e Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Wed, 13 Dec 2023 12:50:28 +0100
Subject: [PATCH 1/6] [kernel|test] Tweaked simple test case
---
lib/kernel/test/inet_sockopt_SUITE.erl | 119 +++++++++++++++++--------
1 file changed, 84 insertions(+), 35 deletions(-)
diff --git a/lib/kernel/test/inet_sockopt_SUITE.erl b/lib/kernel/test/inet_sockopt_SUITE.erl
index 7f901f94df..938a4611fd 100644
--- a/lib/kernel/test/inet_sockopt_SUITE.erl
+++ b/lib/kernel/test/inet_sockopt_SUITE.erl
@@ -239,64 +239,113 @@ simple(Config) when is_list(Config) ->
do_simple(Config, _) when is_list(Config) ->
- XOpt = case os:type() of
- {unix,_} -> [{reuseaddr,true}];
- _ -> []
- end,
- Opt = [{nodelay,true},
- {keepalive,true},{packet,4},
- {active,false}|XOpt],
- OptTags = [X || {X,_} <- Opt],
- {S1,S2} = create_socketpair(Config, Opt, Opt),
- {ok,Opt} = inet:getopts(S1, OptTags),
- {ok,Opt} = inet:getopts(S2, OptTags),
+ ?P("begin"),
+ XOpts = case os:type() of
+ {unix,_} -> [{reuseaddr,true}];
+ _ -> []
+ end,
+ Opts = [{nodelay, true},
+ {keepalive, true},
+ {packet, 4},
+ {active, false} | XOpts],
+ Tags = [X || {X,_} <- Opts],
+
+ ?P("create socket pair"),
+ {S1, S2} = create_socketpair(Config, Opts, Opts),
+ ?P("socket pair created: "
+ "~n S1: ~p"
+ "~n S1 info: ~p"
+ "~n S2: ~p"
+ "~n S2 info: ~p", [S1, inet:info(S1), S2, inet:info(S2)]),
+
+ ?P("S1: get options: "
+ "~n ~p", [Tags]),
+ case inet:getopts(S1, Tags) of
+ {ok, Opts} ->
+ ?P("S1 (getopts) success");
+ {ok, Opts_S1_Invalid_1} ->
+ ?P("S1 incorrect (getopts) success: "
+ "~n Expected opts: ~p"
+ "~n UnExpected opts: ~p"
+ "~n Exp Opts -- UnExp Opts: ~p"
+ "~n UnExp Opts -- Exp Opts: ~p",
+ [Opts, Opts_S1_Invalid_1,
+ Opts -- Opts_S1_Invalid_1,
+ Opts_S1_Invalid_1 -- Opts]),
+ ct:fail({incorrect_success, s1, 1, Opts, Opts_S1_Invalid_1});
+ {error, Reason_S1_1} ->
+ ?P("<ERROR> Failed get S1 options: "
+ "~n Reason: ~p", [Reason_S1_1]),
+ ct:fail({unexpected_failure, s1, 1, Reason_S1_1})
+ end,
+
+ ?P("S2: get options: "
+ "~n ~p", [Tags]),
+ case inet:getopts(S2, Tags) of
+ {ok, Opts} ->
+ ?P("S2 (getopts) success");
+ {ok, Opts_S2_Invalid_1} ->
+ ?P("S2 incorrect (getopts) success: "
+ "~n Expected opts: ~p"
+ "~n UnExpected opts: ~p", [Opts, Opts_S2_Invalid_1]),
+ ct:fail({incorrect_success, s2, 1, Opts, Opts_S2_Invalid_1});
+ {error, Reason_S2_1} ->
+ ?P("<ERROR> Failed get S2 options: "
+ "~n Reason: ~p", [Reason_S2_1]),
+ ct:fail({unexpected_failure, s2, 1, Reason_S2_1})
+ end,
+
NoPushOpt = case os:type() of
{unix, Osname} when Osname =:= linux;
Osname =:= freebsd -> {nopush, true};
{_,_} -> {nopush, false}
end,
COpt = [{X,case X of nodelay -> false;_ -> Y end} ||
- {X,Y} <- [NoPushOpt|Opt]],
+ {X,Y} <- [NoPushOpt|Opts]],
COptTags = [X || {X,_} <- COpt],
?P("S1: set options:"
"~n ~p", [COpt]),
inet:setopts(S1,COpt),
+
?P("S1: get options: "
"~n ~p", [COptTags]),
- %% {ok,COpt} = inet:getopts(S1,COptTags),
- case inet:getopts(S1,COptTags) of
- {ok,COpt} ->
- ?P("S1: success"),
+ case inet:getopts(S1, COptTags) of
+ {ok, COpt} ->
+ ?P("S1: (getopts) success"),
ok;
- {ok, COptErr} ->
- ?P("S1: incorrect success:"
+ {ok, COptErr_S1} ->
+ ?P("S1: incorrect (getopts) success:"
"~n Expected: ~p"
- "~n Received: ~p", [COpt, COptErr]),
- ct:fail({incorrect_success, COpt, COptErr});
- {error, CReason} ->
+ "~n Received: ~p", [COpt, COptErr_S1]),
+ ct:fail({incorrect_success, s1, 2, COpt, COptErr_S1});
+ {error, Reason_S1_2} ->
?P("S1: unexpected failure:"
- "~n ~p", [CReason]),
- ct:fail({unexpected_failure, CReason})
+ "~n ~p", [Reason_S1_2]),
+ ct:fail({unexpected_failure, s1, 2, Reason_S1_2})
end,
+
?P("S2: get options: "
- "~n ~p", [OptTags]),
- %% {ok,Opt} = inet:getopts(S2,OptTags),
- case inet:getopts(S2,OptTags) of
- {ok, Opt} ->
- ?P("S2: success"),
+ "~n ~p", [Tags]),
+ case inet:getopts(S2,Tags) of
+ {ok, Opts} ->
+ ?P("S2: (getopts) success"),
ok;
- {ok, OptErr} ->
- ?P("S2: incorrect success:"
+ {ok, OptErr_S2} ->
+ ?P("S2: incorrect (getopts) success:"
"~n Expected: ~p"
- "~n Received: ~p", [Opt, OptErr]),
- ct:fail({incorrect_success, Opt, OptErr});
- {error, Reason} ->
+ "~n Received: ~p", [Opts, OptErr_S2]),
+ ct:fail({incorrect_success, s2, 2, Opts, OptErr_S2});
+ {error, Reason_S2_2} ->
?P("S2: unexpected failure:"
- "~n ~p", [Reason]),
- ct:fail({unexpected_failure, Reason})
+ "~n ~p", [Reason_S2_2]),
+ ct:fail({unexpected_failure, s2, 2, Reason_S2_2})
end,
+
+ ?P("cleanup"),
gen_tcp:close(S1),
gen_tcp:close(S2),
+
+ ?P("done"),
ok.
%% Loop through all socket options and check that they work.
--
2.35.3