File 4314-kernel-tcp-misc-test-Adjust-econnreset-after-sync-se.patch of Package erlang
From d56772d8d6ab6da769630a545ec4aab3e70fb2d3 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Wed, 20 May 2020 13:05:44 +0200
Subject: [PATCH 14/35] [kernel|tcp|misc-test] Adjust
econnreset-after-sync-send-passive test case
Add a skip clause (eaddrnotavail on connect).
---
lib/kernel/test/gen_tcp_misc_SUITE.erl | 34 ++++++++++++++++++++------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/lib/kernel/test/gen_tcp_misc_SUITE.erl b/lib/kernel/test/gen_tcp_misc_SUITE.erl
index 33f56e8b72..34f0ff9f0a 100644
--- a/lib/kernel/test/gen_tcp_misc_SUITE.erl
+++ b/lib/kernel/test/gen_tcp_misc_SUITE.erl
@@ -1332,7 +1332,7 @@ do_econnreset_after_sync_send(_Config) ->
CSock;
{error, eaddrnotavail = Reason} ->
skip(connect_failed_str(Reason))
- end,
+ end,
{ok, S} = gen_tcp:accept(L),
ok = gen_tcp:close(L),
ok = inet:setopts(S, [{linger, {true, 0}}]),
@@ -1497,15 +1497,27 @@ do_econnreset_after_async_send_active_once(_Config) ->
end.
econnreset_after_async_send_passive(Config) when is_list(Config) ->
+ try do_econnreset_after_async_send_passive(Config)
+ catch
+ throw:{skip, _} = SKIP ->
+ SKIP
+ end.
+
+do_econnreset_after_async_send_passive(_Config) ->
{OS, _} = os:type(),
Payload = lists:duplicate(1024 * 1024, $.),
%% First confirm everything works with option turned off.
+ p("test with option switched off (default)"),
{ok, L} = gen_tcp:listen(0, [{active, false}, {recbuf, 4096}]),
{ok, Port} = inet:port(L),
- {ok, Client} = gen_tcp:connect(localhost, Port,
- [{active, false},
- {sndbuf, 4096}]),
+ Client = case gen_tcp:connect(localhost, Port,
+ [{active, false}, {sndbuf, 4096}]) of
+ {ok, CSock} ->
+ CSock;
+ {error, eaddrnotavail = Reason} ->
+ skip(connect_failed_str(Reason))
+ end,
{ok, S} = gen_tcp:accept(L),
ok = gen_tcp:close(L),
ok = inet:setopts(S, [{linger, {true, 0}}]),
@@ -1521,12 +1533,18 @@ econnreset_after_async_send_passive(Config) when is_list(Config) ->
{error, closed} = gen_tcp:recv(Client, 0),
%% Now test with option switched on.
+ p("test with option explicitly switched on"),
{ok, L1} = gen_tcp:listen(0, [{active, false}, {recbuf, 4096}]),
{ok, Port1} = inet:port(L1),
- {ok, Client1} = gen_tcp:connect(localhost, Port1,
+ Client1 = case gen_tcp:connect(localhost, Port1,
[{active, false},
{sndbuf, 4096},
- {show_econnreset, true}]),
+ {show_econnreset, true}]) of
+ {ok, CSock1} ->
+ CSock1;
+ {error, eaddrnotavail = Reason1} ->
+ skip(connect_failed_str(Reason1))
+ end,
{ok, S1} = gen_tcp:accept(L1),
ok = gen_tcp:close(L1),
ok = inet:setopts(S1, [{linger, {true, 0}}]),
@@ -1534,7 +1552,9 @@ econnreset_after_async_send_passive(Config) when is_list(Config) ->
ok = gen_tcp:send(Client1, Payload),
ok = gen_tcp:close(S1),
ok = ct:sleep(20),
- {error, econnreset} = gen_tcp:recv(Client1, 0).
+ {error, econnreset} = gen_tcp:recv(Client1, 0),
+ p("done"),
+ ok.
%%
%% Test {linger {true, 0}} aborts a connection
--
2.26.2