Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
0185-socket-Fix-test-cases-to-handle-socket-bei...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0185-socket-Fix-test-cases-to-handle-socket-being-disable.patch of Package erlang
From 62dc5d58e5083f06bd8e5e697f408cc288e0b2e3 Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Wed, 8 Dec 2021 16:30:52 +0100 Subject: [PATCH 07/12] socket: Fix test cases to handle socket being disabled --- lib/kernel/test/gen_tcp_api_SUITE.erl | 9 ++++++--- lib/kernel/test/inet_SUITE.erl | 16 +++++++++++++--- lib/kernel/test/init_SUITE.erl | 21 +++++++++++++++++---- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/lib/kernel/test/gen_tcp_api_SUITE.erl b/lib/kernel/test/gen_tcp_api_SUITE.erl index 3d987a180f..24d9f44b1b 100644 --- a/lib/kernel/test/gen_tcp_api_SUITE.erl +++ b/lib/kernel/test/gen_tcp_api_SUITE.erl @@ -1109,7 +1109,7 @@ do_accept_inet6_tclass(Config) -> s_accept_with_explicit_socket_backend(Config) when is_list(Config) -> ?TC_TRY(s_accept_with_explicit_socket_backend, fun() -> - is_not_windows(), + has_socket_support(), is_socket_supported() end, fun() -> do_s_accept_with_explicit_socket_backend() end). @@ -1127,12 +1127,15 @@ do_s_accept_with_explicit_socket_backend() -> %%% Utilities -is_not_windows() -> +has_socket_support() -> case os:type() of {win32, _} -> {skip, "Windows not supported"}; _ -> - ok + case code:is_loaded(prim_socket) of + false -> {skip, "Compiled without socket support"}; + _ -> ok + end end. is_socket_supported() -> diff --git a/lib/kernel/test/inet_SUITE.erl b/lib/kernel/test/inet_SUITE.erl index cf3ff47325..f49724a4da 100644 --- a/lib/kernel/test/inet_SUITE.erl +++ b/lib/kernel/test/inet_SUITE.erl @@ -1916,9 +1916,14 @@ do_socknames_tcp0(_Config) -> ?P("Test socknames for 'new' socket (=socket nif)"), do_socknames_tcp1([{inet_backend, socket}]) catch - error : notsup -> + error:notsup -> ?P("Skip test of socknames for 'new' socket (=socket nif)"), - ok + ok; + error:undef:ST -> + case ST of + [{prim_socket,info,[],_}|_] -> + ?P("Skip test of socknames for 'new' socket (=socket nif)") + end end. @@ -1995,7 +2000,12 @@ do_socknames_udp0(_Config) -> catch error : notsup -> ?P("Skip test of socknames for 'new' socket (=socket nif)"), - ok + ok; + error:undef:ST -> + case ST of + [{prim_socket,info,[],_}|_] -> + ?P("Skip test of socknames for 'new' socket (=socket nif)") + end end. diff --git a/lib/kernel/test/init_SUITE.erl b/lib/kernel/test/init_SUITE.erl index 71b0d44c60..4301aa2161 100644 --- a/lib/kernel/test/init_SUITE.erl +++ b/lib/kernel/test/init_SUITE.erl @@ -397,7 +397,7 @@ restart(Config) when is_list(Config) -> InitPid = rpc:call(Node, erlang, whereis, [init]), PurgerPid = rpc:call(Node, erlang, whereis, [erts_code_purger]), Procs = rpc:call(Node, erlang, processes, []), - MsgFlags = lists:sort(rpc:call(Node, socket, supports, [msg_flags])), + MsgFlags = fetch_socket_msg_flags(Node), MaxPid = lists:last(Procs), ok = rpc:call(Node, init, restart, []), receive @@ -445,8 +445,13 @@ restart(Config) when is_list(Config) -> PrimFileP = pid_to_list(PrimFilePid1), %% and same socket_registry helper process! - ESockRegP = pid_to_list(ESockRegPid), - ESockRegP = pid_to_list(ESockRegPid1), + if ESockRegPid =:= undefined, ESockRegPid1 =:= undefined -> + %% No socket registry on either node + ok; + true -> + ESockRegP = pid_to_list(ESockRegPid), + ESockRegP = pid_to_list(ESockRegPid1) + end, NewProcs0 = rpc:call(Node, erlang, processes, []), NewProcs = NewProcs0 -- SysProcs1, @@ -459,7 +464,7 @@ restart(Config) when is_list(Config) -> end, %% Check that socket tables has been re-initialized; check one - MsgFlags = lists:sort(rpc:call(Node, socket, supports, [msg_flags])), + MsgFlags = fetch_socket_msg_flags(Node), %% Test that, for instance, the same argument still exists. case rpc:call(Node, init, get_argument, [c]) of @@ -555,6 +560,14 @@ apid(Pid) -> [N,P,I] = string:tokens(pid_to_list(Pid),"<>."), [list_to_integer(N),list_to_integer(P),list_to_integer(I)]. +fetch_socket_msg_flags(Node) -> + case code:is_loaded(prim_socket) of + {file,preloaded} -> + lists:sort(rpc:call(Node, socket, supports, [msg_flags])); + _ -> + ok + end. + %% ------------------------------------------------ %% Just test that the system is halted here. %% The reboot facility using heart is tested -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor