File 1259-kernel-test-Add-two-simple-test-cases.patch of Package erlang
From dc252750fccc78fbe167b7f85bf86ae160f41965 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Tue, 25 Mar 2025 18:45:29 +0100
Subject: [PATCH 3/3] [kernel|test] Add two simple test cases
OTP-19560
---
lib/kernel/test/gen_tcp_misc_SUITE.erl | 75 +++++++++++++++++++++++++-
1 file changed, 73 insertions(+), 2 deletions(-)
diff --git a/lib/kernel/test/gen_tcp_misc_SUITE.erl b/lib/kernel/test/gen_tcp_misc_SUITE.erl
index a40fd9e296..d7ffca5a19 100644
--- a/lib/kernel/test/gen_tcp_misc_SUITE.erl
+++ b/lib/kernel/test/gen_tcp_misc_SUITE.erl
@@ -108,7 +108,8 @@
socket_monitor2_manyc/1,
otp_17492/1,
otp_18357/1,
- otp_18707/1
+ otp_18707/1,
+ otp_19560_inet/1, otp_19560_inet6/1
]).
%% Internal exports.
@@ -198,7 +199,8 @@ groups() ->
{pktoptions, [], pktoptions_cases()},
{accept, [], accept_cases()},
{send_timeout, [], send_timeout_cases()},
- {socket_monitor, [], socket_monitor_cases()}
+ {socket_monitor, [], socket_monitor_cases()},
+ {otp_19560, [], otp_19560_cases()}
].
inet_backend_default_cases() ->
@@ -243,7 +245,8 @@ all_std_cases() ->
ticket_cases() ->
[
- otp_18357
+ otp_18357,
+ {group, otp_19560}
].
close_cases() ->
@@ -357,6 +360,12 @@ socket_monitor_cases() ->
socket_monitor2_manyc
].
+otp_19560_cases() ->
+ [
+ otp_19560_inet,
+ otp_19560_inet6
+ ].
+
init_per_suite(Config0) ->
?P("init_per_suite -> entry with"
@@ -9634,3 +9643,65 @@ port_failed_str(Reason) ->
port_failed_str(Reason) ->
?F("Port failed: ~w", [Reason]).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% This is the most basic of tests.
+otp_19560_inet(Config) when is_list(Config) ->
+ ?TC_TRY(?FUNCTION_NAME,
+ fun() ->
+ %% This is only because we use family = inet
+ %% in the test case.
+ ?HAS_SUPPORT_IPV4()
+ end,
+ fun() -> do_otp_19560(inet) end).
+
+%% This is the most basic of tests.
+otp_19560_inet6(Config) when is_list(Config) ->
+ ?TC_TRY(?FUNCTION_NAME,
+ fun() ->
+ %% This is only because we use family = inet
+ %% in the test case.
+ ?HAS_SUPPORT_IPV6()
+ end,
+ fun() -> do_otp_19560(inet6) end).
+
+do_otp_19560(Family) ->
+ ?P("create listen socket"),
+ {ok, L} = gen_tcp:listen(0, [{ip, loopback}]),
+ ?P("get sockname (port) for listen socket"),
+ {ok, {_, P} = LSA} = inet:sockname(L),
+ ?P("connect to listen socket using 'loopback' address"),
+ C = case gen_tcp:connect(#{family => Family,
+ addr => loopback,
+ port => P},
+ [{ip, loopback}]) of
+ {ok, S} ->
+ S;
+ {error, eafnosupport = Reason} ->
+ ?P("~w not supported: ~w", [Family, Reason]),
+ exit({skip, Reason})
+ end,
+
+ ?P("accept connection"),
+ {ok, A} = gen_tcp:accept(L),
+
+ ?P("get sockname for connected socket"),
+ {ok, CSA} = inet:sockname(C),
+
+ ?P("get sockname for accepted socket"),
+ {ok, ASA} = inet:sockname(A),
+
+ ?P("connected:"
+ "~n Listen SockAddr: ~p"
+ "~n Connect SockAddr: ~p"
+ "~n Accept SockAddr: ~p", [LSA, CSA, ASA]),
+
+ ?P("cleanup"),
+ (catch gen_tcp:close(A)),
+ (catch gen_tcp:close(C)),
+ (catch gen_tcp:close(L)),
+
+ ?P("done"),
+ ok.
--
2.43.0