File 4342-kernel-udp-test-Adjust-send-tos-ttl-tosttl-tclass-te.patch of Package erlang

From 7095e6b63d12298e935c93a3df829695b848ede9 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Wed, 27 May 2020 15:09:14 +0200
Subject: [PATCH 2/2] [kernel|udp|test] Adjust send[tos|ttl|tosttl|tclass] test
 case(s)

Add some print'outs to the version check.
The test cases seems to be run of OS:s that does not support
these options, which the version check should prevent...
Also, add an explicit check for the error reason 'enoprotoopt'
when sending => SKIP.
---
 lib/kernel/test/gen_udp_SUITE.erl | 55 +++++++++++++++++++++++--------
 1 file changed, 42 insertions(+), 13 deletions(-)

diff --git a/lib/kernel/test/gen_udp_SUITE.erl b/lib/kernel/test/gen_udp_SUITE.erl
index 164f47dc9e..058c0c106c 100644
--- a/lib/kernel/test/gen_udp_SUITE.erl
+++ b/lib/kernel/test/gen_udp_SUITE.erl
@@ -647,11 +647,17 @@ recvtclass(_Config) ->
 
 
 sendtos(_Config) ->
+    ?TRY_TC(fun() -> do_sendtos() end).
+
+do_sendtos() ->
     test_recv_opts(
       inet, [{recvtos,tos,96}], true,
       fun sendtos_ok/2).
 
 sendtosttl(_Config) ->
+    ?TRY_TC(fun() -> do_sendtosttl() end).
+
+do_sendtosttl() ->
     test_recv_opts(
       inet, [{recvtos,tos,96},{recvttl,ttl,33}], true,
       fun (OSType, OSVer) ->
@@ -659,11 +665,17 @@ sendtosttl(_Config) ->
       end).
 
 sendttl(_Config) ->
+    ?TRY_TC(fun() -> do_sendttl() end).
+
+do_sendttl() ->
     test_recv_opts(
       inet, [{recvttl,ttl,33}], true,
       fun sendttl_ok/2).
 
 sendtclass(_Config) ->
+    ?TRY_TC(fun() -> do_sendtclass() end).
+
+do_sendtclass() ->
     {ok,IFs} = inet:getifaddrs(),
     case
         [Name ||
@@ -751,24 +763,31 @@ sendtclass_ok({unix,_}, _) -> true;
 sendtclass_ok(_, _) -> false.
 
 
-semver_lt({X1,Y1,Z1}, {X2,Y2,Z2}) ->
+semver_lt({X1,Y1,Z1} = V1, {X2,Y2,Z2} = V2) ->
+    p("semver_lt -> OS version check:"
+      "~n   Version 1: ~p"
+      "~n   Version 2: ~p", [V1, V2]),
     if
-        X1 > X2 -> false;
-        X1 < X2 -> true;
-        Y1 > Y2 -> false;
-        Y1 < Y2 -> true;
-        Z1 > Z2 -> false;
-        Z1 < Z2 -> true;
-        true -> false
+        X1 > X2 -> p("semver_lt -> X1 > X2: ~p > ~p", [X1, X2]), false;
+        X1 < X2 -> p("semver_lt -> X1 < X2: ~p < ~p", [X1, X2]), true;
+        Y1 > Y2 -> p("semver_lt -> Y1 > Y2: ~p > ~p", [Y1, Y2]), false;
+        Y1 < Y2 -> p("semver_lt -> Y1 < Y2: ~p < ~p", [Y1, Y2]), true;
+        Z1 > Z2 -> p("semver_lt -> Z1 > Z2: ~p > ~p", [Z1, Z2]), false;
+        Z1 < Z2 -> p("semver_lt -> Z1 < Z2: ~p < ~p", [Z1, Z2]), true;
+        true    -> p("semver_lt -> default"), false
     end;
-semver_lt(_, {_,_,_}) -> false.
+semver_lt(V1, {_,_,_} = V2) ->
+    p("semver_lt -> fallback OS version check when: "
+      "~n   Version 1: ~p"
+      "~n   Version 2: ~p", [V1, V2]),
+    false.
 
 test_recv_opts(Family, Spec, TestSend, OSFilter) ->
     OSType = os:type(),
-    OSVer = os:version(),
+    OSVer  = os:version(),
     case OSFilter(OSType, OSVer) of
         true ->
-            io:format("Os: ~p, ~p~n", [OSType,OSVer]),
+            p("OS: ~p, ~p", [OSType, OSVer]),
             test_recv_opts(Family, Spec, TestSend, OSType, OSVer);
         false ->
             {skip,{not_supported_for_os_version,{OSType,OSVer}}}
@@ -814,8 +833,18 @@ test_recv_opts(Family, Spec, TestSend, _OSType, _OSVer) ->
     ok = gen_udp:send(S1, Addr, P2, <<"fghij">>),
     TestSend andalso
         begin
-            ok = gen_udp:send(S2, Addr, P1, OptsVals, <<"ABCDE">>),
-            ok = gen_udp:send(S2, {Addr,P1}, OptsVals, <<"12345">>)
+            case gen_udp:send(S2, Addr, P1, OptsVals, <<"ABCDE">>) of
+                ok ->
+                    ok;
+                {error, enoprotoopt = Reason1} ->
+                    skip(f("send (1) failed: ~p", [Reason1]))
+            end,
+            case gen_udp:send(S2, {Addr,P1}, OptsVals, <<"12345">>) of
+                ok ->
+                    ok;
+                {error, enoprotoopt = Reason2} ->
+                    skip(f("send (2) failed: ~p", [Reason2]))
+            end
         end,
     {ok,{_,P2,OptsVals3,<<"abcde">>}} = gen_udp:recv(S1, 0, Timeout),
     verify_sets_eq(OptsVals3, OptsVals2),
-- 
2.26.2

openSUSE Build Service is sponsored by