File 4301-kernel-tcp-api-test-Provide-more-info-when-failing-t.patch of Package erlang
From 14a474af0a50acb2a27d3115e3ce9b2f15d22f7e Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Mon, 18 May 2020 17:59:29 +0200
Subject: [PATCH 01/35] [kernel|tcp|api-test] Provide more info when failing to
find unused ip
Use the net:getifaddrs/0 function to provide more info
when we fail to find an unused info (why we did not).
Note that this does not (yet) work on all platforms (Windows),
in which c ase we behave as before.
Also, replace the "fake" success on the connect_timeout test case
with a skip.
---
lib/kernel/test/gen_tcp_api_SUITE.erl | 31 +++++++++++++++++++++------
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/lib/kernel/test/gen_tcp_api_SUITE.erl b/lib/kernel/test/gen_tcp_api_SUITE.erl
index 00c9dc5ed5..e825f4247d 100644
--- a/lib/kernel/test/gen_tcp_api_SUITE.erl
+++ b/lib/kernel/test/gen_tcp_api_SUITE.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1998-2018. All Rights Reserved.
+%% Copyright Ericsson AB 1998-2020. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -561,11 +561,11 @@ connect_timeout({M,F,A}, Lower, Upper) ->
case test_server:timecall(M, F, A) of
{Time, Result} when Time < Lower ->
case Result of
- {error,econnrefused=E} ->
- {comment,"Not tested -- got error "++atom_to_list(E)};
- {error,enetunreach=E} ->
- {comment,"Not tested -- got error "++atom_to_list(E)};
- {ok,Socket} -> % What the...
+ {error, econnrefused = E} ->
+ {skip, "Not tested -- got error " ++ atom_to_list(E)};
+ {error, enetunreach = E} ->
+ {skip, "Not tested -- got error " ++ atom_to_list(E)};
+ {ok, Socket} -> % What the...
Pinfo = erlang:port_info(Socket),
Db = inet_db:lookup_socket(Socket),
Peer = inet:peername(Socket),
@@ -591,7 +591,24 @@ unused_ip() ->
%% Note: In our net, addresses below 16 are reserved for routers and
%% other strange creatures.
IP = unused_ip(A, B, C, 16),
- io:format("we = ~p, unused_ip = ~p~n", [Hent, IP]),
+ if
+ (IP =:= error) ->
+ %% This is not supported on all platforms (yet), so...
+ try net:getifaddrs() of
+ {ok, IfAddrs} ->
+ io:format("we = ~p,"
+ "unused_ip = ~p"
+ " ~p"
+ "~n", [Hent, IP, IfAddrs]);
+ {error, _} ->
+ io:format("we = ~p, unused_ip = ~p~n", [Hent, IP])
+ catch
+ _:_:_ ->
+ io:format("we = ~p, unused_ip = ~p~n", [Hent, IP])
+ end;
+ true ->
+ io:format("we = ~p, unused_ip = ~p~n", [Hent, IP])
+ end,
IP.
unused_ip(255, 255, 255, 255) -> error;
--
2.26.2