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

openSUSE Build Service is sponsored by