aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--erts/emulator/test/Makefile11
-rw-r--r--erts/emulator/test/socket_SUITE.erl (renamed from lib/kernel/test/socket_SUITE.erl)343
-rw-r--r--erts/emulator/test/socket_client.erl (renamed from lib/kernel/test/socket_client.erl)0
-rw-r--r--erts/emulator/test/socket_lib.erl (renamed from lib/kernel/test/socket_lib.erl)0
-rw-r--r--erts/emulator/test/socket_server.erl (renamed from lib/kernel/test/socket_server.erl)0
-rw-r--r--lib/kernel/test/Makefile12
6 files changed, 231 insertions, 135 deletions
diff --git a/erts/emulator/test/Makefile b/erts/emulator/test/Makefile
index bf00de2204..39a3ef2a3d 100644
--- a/erts/emulator/test/Makefile
+++ b/erts/emulator/test/Makefile
@@ -28,6 +28,12 @@ EBIN = .
# Target Specs
# ----------------------------------------------------
+SOCKET_MODULES = \
+ socket_lib \
+ socket_server \
+ socket_client \
+ socket_SUITE
+
MODULES= \
a_SUITE \
after_SUITE \
@@ -103,6 +109,7 @@ MODULES= \
sensitive_SUITE \
signal_SUITE \
smoke_test_SUITE \
+ $(SOCKET_MODULES) \
statistics_SUITE \
system_info_SUITE \
system_profile_SUITE \
@@ -151,6 +158,7 @@ NATIVE_ERL_FILES= $(NATIVE_MODULES:%=%.erl)
ERL_FILES= $(MODULES:%=%.erl)
TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+SOCKET_TARGETS = $(SOCKET_MODULES:%=$(EBIN)/%.$(EMULATOR))
EMAKEFILE=Emakefile
@@ -197,6 +205,9 @@ clean:
docs:
+targets: $(TARGET_FILES)
+socket_targets: $(SOCKET_TARGETS)
+
# ----------------------------------------------------
# Special targets
# ----------------------------------------------------
diff --git a/lib/kernel/test/socket_SUITE.erl b/erts/emulator/test/socket_SUITE.erl
index 022e83a944..92dd5e7097 100644
--- a/lib/kernel/test/socket_SUITE.erl
+++ b/erts/emulator/test/socket_SUITE.erl
@@ -88,7 +88,11 @@
%% Internal exports
%% -export([]).
-
+-record(ev, {name :: string(),
+ pid :: pid(),
+ mref :: reference()}).
+-type ev() :: #ev{}.
+-define(MKEV(N,P,R), #ev{name = N, pid = P, mref = R}).
-type initial_evaluator_state() :: map().
-type evaluator_state() :: term().
-type command_fun() ::
@@ -109,6 +113,10 @@
-define(SLEEP(T), receive after T -> ok end).
+-define(MINS(M), timer:minutes(M)).
+-define(SECS(S), timer:seconds(S)).
+
+-define(TT(T), ct:timetrap(T)).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -164,6 +172,8 @@ api_op_with_timeout_cases() ->
api_to_connect_tcp6,
api_to_accept_tcp4,
api_to_accept_tcp6,
+ api_to_maccept_tcp4,
+ api_to_maccept_tcp6,
api_to_send_tcp4,
api_to_send_tcp6,
api_to_sendto_udp4,
@@ -263,6 +273,7 @@ api_b_open_and_close_udp4(suite) ->
api_b_open_and_close_udp4(doc) ->
[];
api_b_open_and_close_udp4(_Config) when is_list(_Config) ->
+ ?TT(?SECS(5)),
tc_try(api_b_open_and_close_udp4,
fun() ->
InitState = #{domain => inet,
@@ -281,6 +292,7 @@ api_b_open_and_close_tcp4(suite) ->
api_b_open_and_close_tcp4(doc) ->
[];
api_b_open_and_close_tcp4(_Config) when is_list(_Config) ->
+ ?TT(?SECS(5)),
tc_try(api_b_open_and_close_tcp4,
fun() ->
InitState = #{domain => inet,
@@ -392,6 +404,7 @@ api_b_sendto_and_recvfrom_udp4(suite) ->
api_b_sendto_and_recvfrom_udp4(doc) ->
[];
api_b_sendto_and_recvfrom_udp4(_Config) when is_list(_Config) ->
+ ?TT(?SECS(5)),
tc_try(api_b_sendto_and_recvfrom_udp4,
fun() ->
Send = fun(Sock, Data, Dest) ->
@@ -416,6 +429,7 @@ api_b_sendmsg_and_recvmsg_udp4(suite) ->
api_b_sendmsg_and_recvmsg_udp4(doc) ->
[];
api_b_sendmsg_and_recvmsg_udp4(_Config) when is_list(_Config) ->
+ ?TT(?SECS(5)),
tc_try(api_b_sendmsg_and_recvmsg_udp4,
fun() ->
Send = fun(Sock, Data, Dest) ->
@@ -530,6 +544,7 @@ api_b_send_and_recv_tcp4(suite) ->
api_b_send_and_recv_tcp4(doc) ->
[];
api_b_send_and_recv_tcp4(_Config) when is_list(_Config) ->
+ ?TT(?SECS(10)),
tc_try(api_b_send_and_recv_tcp4,
fun() ->
Send = fun(Sock, Data) ->
@@ -554,6 +569,7 @@ api_b_sendmsg_and_recvmsg_tcp4(suite) ->
api_b_sendmsg_and_recvmsg_tcp4(doc) ->
[];
api_b_sendmsg_and_recvmsg_tcp4(_Config) when is_list(_Config) ->
+ ?TT(?SECS(10)),
tc_try(api_b_sendmsg_and_recvmsg_tcp4,
fun() ->
Send = fun(Sock, Data) ->
@@ -709,16 +725,16 @@ api_b_send_and_recv_tcp(InitState) ->
end}
],
- p("start server evaluator"),
- Server = evaluator_start("server", ServerSeq, InitState),
- p("await server (~p) port", [Server]),
+ i("start server evaluator"),
+ #ev{pid = Pid} = Server = evaluator_start("server", ServerSeq, InitState),
+ i("await server (~p) port", [Pid]),
SPort = receive
- {server_port, Server, Port} ->
+ {server_port, Pid, Port} ->
Port
end,
- p("start client evaluator"),
+ i("start client evaluator"),
Client = evaluator_start("client", ClientSeq, InitState#{server_port => SPort}),
- p("await evaluator(s)"),
+ i("await evaluator(s)"),
ok = await_evaluator_finish([Server, Client]).
@@ -739,6 +755,7 @@ api_opt_simple_otp_options(suite) ->
api_opt_simple_otp_options(doc) ->
[];
api_opt_simple_otp_options(_Config) when is_list(_Config) ->
+ ?TT(?SECS(5)),
tc_try(api_opt_simple_otp_options,
fun() -> api_opt_simple_otp_options() end).
@@ -978,16 +995,16 @@ api_opt_simple_otp_options() ->
end}
],
- p("Run test for stream/tcp socket"),
+ i("start tcp (stream) evaluator"),
InitState1 = #{domain => inet, type => stream, protocol => tcp},
Tester1 = evaluator_start("tcp-tester", Seq, InitState1),
- p("await evaluator 1"),
+ i("await tcp evaluator"),
ok = await_evaluator_finish([Tester1]),
- p("Run test for dgram/udp socket"),
+ i("start udp (dgram) socket"),
InitState2 = #{domain => inet, type => dgram, protocol => udp},
Tester2 = evaluator_start("udp-tester", Seq, InitState2),
- p("await evaluator 2"),
+ i("await udp evaluator"),
ok = await_evaluator_finish([Tester2]).
@@ -999,6 +1016,7 @@ api_opt_simple_otp_controlling_process(suite) ->
api_opt_simple_otp_controlling_process(doc) ->
[];
api_opt_simple_otp_controlling_process(_Config) when is_list(_Config) ->
+ ?TT(?SECS(5)),
tc_try(api_opt_simple_otp_controlling_process,
fun() -> api_opt_simple_otp_controlling_process() end).
@@ -1218,26 +1236,28 @@ api_opt_simple_otp_controlling_process() ->
end}
],
- p("Run test for stream/tcp socket"),
+ i("start tcp (stream) socket"),
ClientInitState1 = #{},
- Client1 = evaluator_start("tcp-client", ClientSeq, ClientInitState1),
+ #ev{pid = Pid1} = Client1 = evaluator_start("tcp-client",
+ ClientSeq, ClientInitState1),
TesterInitState1 = #{domain => inet,
type => stream,
protocol => tcp,
- client => Client1},
+ client => Pid1},
Tester1 = evaluator_start("tcp-tester", TesterSeq, TesterInitState1),
- p("await stream/tcp evaluator"),
+ i("await tcp evaluator"),
ok = await_evaluator_finish([Tester1, Client1]),
- p("Run test for dgram/udp socket"),
+ i("start udp (dgram) socket"),
ClientInitState2 = #{},
- Client2 = evaluator_start("udp-client", ClientSeq, ClientInitState2),
+ #ev{pid = Pid2} = Client2 = evaluator_start("udp-client",
+ ClientSeq, ClientInitState2),
TesterInitState2 = #{domain => inet,
type => dgram,
protocol => udp,
- client => Client2},
+ client => Pid2},
Tester2 = evaluator_start("udp-tester", TesterSeq, TesterInitState2),
- p("await dgram/udp evaluator"),
+ i("await udp evaluator"),
ok = await_evaluator_finish([Tester2, Client2]).
@@ -1261,6 +1281,7 @@ api_to_connect_tcp4(doc) ->
api_to_connect_tcp4(_Config) when is_list(_Config) ->
tc_try(api_to_connect_tcp4,
fun() ->
+ ?TT(?SECS(10)),
InitState = #{domain => inet, timeout => 5000},
ok = api_to_connect_tcp(InitState)
end).
@@ -1278,6 +1299,7 @@ api_to_connect_tcp6(_Config) when is_list(_Config) ->
tc_try(api_to_connect_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
InitState = #{domain => inet6, timeout => 5000},
ok = api_to_connect_tcp(InitState)
end).
@@ -1500,15 +1522,15 @@ api_to_connect_tcp(InitState) ->
end}
],
- p("create server evaluator"),
+ i("create server evaluator"),
ServerInitState = InitState,
Server = evaluator_start("server", ServerSeq, ServerInitState),
- p("create tester evaluator"),
- TesterInitState = InitState#{server => Server},
+ i("create tester evaluator"),
+ TesterInitState = InitState#{server => Server#ev.pid},
Tester = evaluator_start("tester", TesterSeq, TesterInitState),
- p("await evaluator(s)"),
+ i("await evaluator(s)"),
ok = await_evaluator_finish([Server, Tester]).
@@ -1555,6 +1577,7 @@ api_to_accept_tcp4(doc) ->
api_to_accept_tcp4(_Config) when is_list(_Config) ->
tc_try(api_to_accept_tcp4,
fun() ->
+ ?TT(?SECS(10)),
InitState = #{domain => inet, timeout => 5000},
ok = api_to_accept_tcp(InitState)
end).
@@ -1572,6 +1595,7 @@ api_to_accept_tcp6(_Config) when is_list(_Config) ->
tc_try(api_to_accept_tcp4,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
InitState = #{domain => inet6, timeout => 5000},
ok = api_to_accept_tcp(InitState)
end).
@@ -1651,10 +1675,10 @@ api_to_accept_tcp(InitState) ->
end}
],
- p("create tester evaluator"),
+ i("create tester evaluator"),
Tester = evaluator_start("tester", TesterSeq, InitState),
- p("await evaluator"),
+ i("await evaluator"),
ok = await_evaluator_finish([Tester]).
@@ -2071,28 +2095,31 @@ api_to_maccept_tcp(InitState) ->
end}
],
- p("create prim-acceptor evaluator"),
+ i("create prim-acceptor evaluator"),
PrimAInitState = InitState,
- PrimAcceptor = evaluator_start("prim-acceptor",
- PrimAcceptorSeq, PrimAInitState),
+ #ev{pid = PPid} = PrimAcceptor = evaluator_start("prim-acceptor",
+ PrimAcceptorSeq,
+ PrimAInitState),
- p("create prim-acceptor 1 evaluator"),
+ i("create sec-acceptor 1 evaluator"),
SecAInitState1 = maps:remove(domain, InitState),
- SecAcceptor1 = evaluator_start("sec-acceptor-1",
- SecAcceptorSeq, SecAInitState1),
-
- p("create prim-acceptor 2 evaluator"),
+ #ev{pid = SPid1} = SecAcceptor1 = evaluator_start("sec-acceptor-1",
+ SecAcceptorSeq,
+ SecAInitState1),
+
+ i("create sec-acceptor 2 evaluator"),
SecAInitState2 = SecAInitState1,
- SecAcceptor2 = evaluator_start("sec-acceptor-2",
- SecAcceptorSeq, SecAInitState2),
-
- p("create tester evaluator"),
- TesterInitState = #{prim_acceptor => PrimAcceptor,
- sec_acceptor1 => SecAcceptor1,
- sec_acceptor2 => SecAcceptor2},
+ #ev{pid = SPid2} = SecAcceptor2 = evaluator_start("sec-acceptor-2",
+ SecAcceptorSeq,
+ SecAInitState2),
+
+ i("create tester evaluator"),
+ TesterInitState = #{prim_acceptor => PPid,
+ sec_acceptor1 => SPid1,
+ sec_acceptor2 => SPid2},
Tester = evaluator_start("tester", TesterSeq, TesterInitState),
- p("await evaluator(s)"),
+ i("await evaluator(s)"),
ok = await_evaluator_finish([PrimAcceptor, SecAcceptor1, SecAcceptor2, Tester]).
@@ -2238,6 +2265,7 @@ api_to_recv_tcp4(doc) ->
api_to_recv_tcp4(_Config) when is_list(_Config) ->
tc_try(api_to_recv_tcp4,
fun() ->
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recv(Sock, 0, To) end,
InitState = #{domain => inet,
recv => Recv,
@@ -2260,6 +2288,7 @@ api_to_recv_tcp6(_Config) when is_list(_Config) ->
not_yet_implemented(),
case socket:supports(ipv6) of
true ->
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) ->
socket:recv(Sock, 0, To)
end,
@@ -2628,19 +2657,23 @@ api_to_receive_tcp(InitState) ->
],
- p("start server evaluator"),
+ i("start server evaluator"),
ServerInitState = InitState,
- Server = evaluator_start("server", ServerSeq, ServerInitState),
+ #ev{pid = SPid} = Server = evaluator_start("server",
+ ServerSeq,
+ ServerInitState),
- p("start client evaluator"),
+ i("start client evaluator"),
ClientInitState = InitState,
- Client = evaluator_start("client", ClientSeq, ClientInitState),
+ #ev{pid = CPid} = Client = evaluator_start("client",
+ ClientSeq,
+ ClientInitState),
- p("start tester evaluator"),
- TesterInitState = #{server => Server, client => Client},
+ i("start tester evaluator"),
+ TesterInitState = #{server => SPid, client => CPid},
Tester = evaluator_start("tester", TesterSeq, TesterInitState),
- p("await evaluator(s)"),
+ i("await evaluator(s)"),
ok = await_evaluator_finish([Server, Client, Tester]).
@@ -2656,6 +2689,7 @@ api_to_recvfrom_udp4(doc) ->
api_to_recvfrom_udp4(_Config) when is_list(_Config) ->
tc_try(api_to_recvfrom_udp4,
fun() ->
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recvfrom(Sock, 0, To) end,
InitState = #{domain => inet,
recv => Recv,
@@ -2676,6 +2710,7 @@ api_to_recvfrom_udp6(_Config) when is_list(_Config) ->
tc_try(api_to_recvfrom_udp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recvfrom(Sock, 0, To) end,
InitState = #{domain => inet6,
recv => Recv,
@@ -2753,10 +2788,10 @@ api_to_receive_udp(InitState) ->
end}
],
- p("start tester evaluator"),
+ i("start tester evaluator"),
Tester = evaluator_start("tester", TesterSeq, InitState),
- p("await evaluator"),
+ i("await evaluator"),
ok = await_evaluator_finish([Tester]).
@@ -2772,6 +2807,7 @@ api_to_recvmsg_udp4(doc) ->
api_to_recvmsg_udp4(_Config) when is_list(_Config) ->
tc_try(api_to_recvmsg_udp4,
fun() ->
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recvmsg(Sock, To) end,
InitState = #{domain => inet,
recv => Recv,
@@ -2792,6 +2828,7 @@ api_to_recvmsg_udp6(_Config) when is_list(_Config) ->
tc_try(api_to_recvmsg_udp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recvmsg(Sock, To) end,
InitState = #{domain => inet6,
recv => Recv,
@@ -2811,6 +2848,7 @@ api_to_recvmsg_tcp4(doc) ->
api_to_recvmsg_tcp4(_Config) when is_list(_Config) ->
tc_try(api_to_recvmsg_tcp4,
fun() ->
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recvmsg(Sock, To) end,
InitState = #{domain => inet,
recv => Recv,
@@ -2831,6 +2869,7 @@ api_to_recvmsg_tcp6(_Config) when is_list(_Config) ->
tc_try(api_to_recvmsg_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock, To) -> socket:recvmsg(Sock, To) end,
InitState = #{domain => inet6,
recv => Recv,
@@ -2861,6 +2900,7 @@ sc_cpe_socket_cleanup_tcp4(_Config) when is_list(_Config) ->
tc_try(sc_cpe_socket_cleanup_tcp4,
fun() ->
%% not_yet_implemented(),
+ ?TT(?SECS(5)),
InitState = #{domain => inet,
type => stream,
protocol => tcp},
@@ -2881,6 +2921,7 @@ sc_cpe_socket_cleanup_tcp6(_Config) when is_list(_Config) ->
tc_try(sc_cpe_socket_cleanup_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(5)),
InitState = #{domain => inet6,
type => stream,
protocol => tcp},
@@ -2900,6 +2941,7 @@ sc_cpe_socket_cleanup_udp4(doc) ->
sc_cpe_socket_cleanup_udp4(_Config) when is_list(_Config) ->
tc_try(sc_cpe_socket_cleanup_udp4,
fun() ->
+ ?TT(?SECS(5)),
InitState = #{domain => inet,
type => dgram,
protocol => udp},
@@ -2921,6 +2963,7 @@ sc_cpe_socket_cleanup_udp6(_Config) when is_list(_Config) ->
tc_try(sc_cpe_socket_cleanup_udp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(5)),
InitState = #{domain => inet6,
type => dgram,
protocol => udp},
@@ -3057,14 +3100,14 @@ sc_cpe_socket_cleanup(InitState) ->
end}
],
- p("start (socket) owner evaluator"),
- Owner = evaluator_start("owner", OwnerSeq, InitState),
+ i("start (socket) owner evaluator"),
+ #ev{pid = Pid} = Owner = evaluator_start("owner", OwnerSeq, InitState),
- p("start tester evaluator"),
- TesterInitState = #{owner => Owner},
+ i("start tester evaluator"),
+ TesterInitState = #{owner => Pid},
Tester = evaluator_start("tester", TesterSeq, TesterInitState),
- p("await evaluator"),
+ i("await evaluator"),
ok = await_evaluator_finish([Owner, Tester]).
@@ -3088,7 +3131,7 @@ sc_lc_recv_response_tcp4(doc) ->
sc_lc_recv_response_tcp4(_Config) when is_list(_Config) ->
tc_try(sc_lc_recv_response_tcp4,
fun() ->
- %% not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recv(Sock) end,
InitState = #{domain => inet,
type => stream,
@@ -3111,6 +3154,7 @@ sc_lc_recv_response_tcp6(_Config) when is_list(_Config) ->
tc_try(sc_lc_recv_response_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recv(Sock) end,
InitState = #{domain => inet6,
type => stream,
@@ -3644,25 +3688,31 @@ sc_lc_receive_response_tcp(InitState) ->
end}
],
- p("start acceptor evaluator"),
+ i("start acceptor evaluator"),
AccInitState = InitState,
- Acceptor = evaluator_start("acceptor", AcceptorSeq, AccInitState),
+ #ev{pid = APid} = Acceptor = evaluator_start("acceptor",
+ AcceptorSeq,
+ AccInitState),
- p("start handler evaluator"),
+ i("start handler evaluator"),
HandlerInitState = #{recv => maps:get(recv, InitState)},
- Handler = evaluator_start("handler", HandlerSeq, HandlerInitState),
+ #ev{pid = HPid} = Handler = evaluator_start("handler",
+ HandlerSeq,
+ HandlerInitState),
- p("start client evaluator"),
+ i("start client evaluator"),
ClientInitState = InitState,
- Client = evaluator_start("client", ClientSeq, ClientInitState),
-
- p("start tester evaluator"),
- TesterInitState = #{acceptor => Acceptor,
- handler => Handler,
- client => Client},
+ #ev{pid = CPid} = Client = evaluator_start("client",
+ ClientSeq,
+ ClientInitState),
+
+ i("start tester evaluator"),
+ TesterInitState = #{acceptor => APid,
+ handler => HPid,
+ client => CPid},
Tester = evaluator_start("tester", TesterSeq, TesterInitState),
- p("await evaluator"),
+ i("await evaluator"),
ok = await_evaluator_finish([Acceptor, Handler, Client, Tester]).
@@ -3680,6 +3730,7 @@ sc_rc_recv_response_tcp4(_Config) when is_list(_Config) ->
tc_try(sc_rc_recv_response_tcp4,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recv(Sock) end,
InitState = #{domain => inet,
type => stream,
@@ -3702,6 +3753,7 @@ sc_rc_recv_response_tcp6(_Config) when is_list(_Config) ->
tc_try(sc_rc_recv_response_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recv(Sock) end,
InitState = #{domain => inet6,
type => stream,
@@ -3730,6 +3782,7 @@ sc_lc_recvmsg_response_tcp4(doc) ->
sc_lc_recvmsg_response_tcp4(_Config) when is_list(_Config) ->
tc_try(sc_lc_recvmsg_response_tcp4,
fun() ->
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recvmsg(Sock) end,
InitState = #{domain => inet,
type => stream,
@@ -3752,6 +3805,7 @@ sc_lc_recvmsg_response_tcp6(_Config) when is_list(_Config) ->
tc_try(sc_recvmsg_response_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recvmsg(Sock) end,
InitState = #{domain => inet6,
type => stream,
@@ -3774,6 +3828,7 @@ sc_rc_recvmsg_response_tcp4(_Config) when is_list(_Config) ->
tc_try(sc_rc_recvmsg_response_tcp4,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recvmsg(Sock) end,
InitState = #{domain => inet,
type => stream,
@@ -3796,6 +3851,7 @@ sc_rc_recvmsg_response_tcp6(_Config) when is_list(_Config) ->
tc_try(sc_rc_recvmsg_response_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
Recv = fun(Sock) -> socket:recvmsg(Sock) end,
InitState = #{domain => inet6,
type => stream,
@@ -3820,6 +3876,7 @@ sc_lc_acceptor_response_tcp4(_Config) when is_list(_Config) ->
tc_try(sc_lc_acceptor_response_tcp4,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
InitState = #{domain => inet,
type => stream,
protocol => tcp},
@@ -3842,6 +3899,7 @@ sc_lc_acceptor_response_tcp6(_Config) when is_list(_Config) ->
tc_try(sc_lc_acceptor_response_tcp6,
fun() ->
not_yet_implemented(),
+ ?TT(?SECS(10)),
InitState = #{domain => inet,
type => stream,
protocol => tcp},
@@ -3899,18 +3957,17 @@ which_addr2(Domain, [_|IFO]) ->
%% will be used as exit reason.
%% A successful command shall evaluate to ok | {ok, NewState}
--spec evaluator_start(Name, Seq, Init) -> {Pid, MRef} when
+-spec evaluator_start(Name, Seq, Init) -> ev() when
Name :: string(),
Seq :: [command()],
- Init :: initial_evaluator_state(),
- Pid :: pid(),
- MRef :: reference().
+ Init :: initial_evaluator_state().
evaluator_start(Name, Seq, Init)
when is_list(Name) andalso is_list(Seq) andalso (Seq =/= []) ->
Init2 = Init#{parent => self()},
- {Pid, _} = erlang:spawn_monitor(fun() -> evaluator_init(Name, Seq, Init2) end),
- Pid.
+ {Pid, MRef} = erlang:spawn_monitor(
+ fun() -> evaluator_init(Name, Seq, Init2) end),
+ ?MKEV(Name, Pid, MRef).
evaluator_init(Name, Seq, Init) ->
put(sname, Name),
@@ -3949,24 +4006,26 @@ await_evaluator_finish([], Fails) ->
await_evaluator_finish(Evs, Fails) ->
receive
{'DOWN', _MRef, process, Pid, normal} ->
- case lists:delete(Pid, Evs) of
- Evs ->
- p("unknown process ~p died (normal)", [Pid]),
- await_evaluator_finish(Evs, Fails);
- NewEvs ->
- p("evaluator ~p success", [Pid]),
- await_evaluator_finish(NewEvs, Fails)
- end;
+ case lists:keysearch(Pid, #ev.pid, Evs) of
+ {value, #ev{name = Name}} ->
+ i("evaluator '~s' (~p) success", [Name, Pid]),
+ NewEvs = lists:keydelete(Pid, #ev.pid, Evs),
+ await_evaluator_finish(NewEvs, Fails);
+ false ->
+ i("unknown process ~p died (normal)", [Pid]),
+ await_evaluator_finish(Evs, Fails)
+ end;
{'DOWN', _MRef, process, Pid, Reason} ->
- case lists:delete(Pid, Evs) of
- Evs ->
- p("unknown process ~p died: "
- "~n ~p", [Pid, Reason]),
- await_evaluator_finish(Evs, Fails);
- NewEvs ->
- p("Evaluator ~p failed", [Pid]),
- await_evaluator_finish(NewEvs, [{Pid, Reason}|Fails])
- end
+ case lists:keysearch(Pid, #ev.pid, Evs) of
+ {value, #ev{name = Name}} ->
+ i("evaluator '~s' (~p) failed", [Name, Pid]),
+ NewEvs = lists:keydelete(Pid, #ev.pid, Evs),
+ await_evaluator_finish(NewEvs, [{Pid, Reason}|Fails]);
+ false ->
+ i("unknown process ~p died: "
+ "~n ~p", [Pid, Reason]),
+ await_evaluator_finish(Evs, Fails)
+ end
end.
@@ -3981,8 +4040,12 @@ ee(F, A) ->
eprint("<ERROR> ", F, A).
eprint(Prefix, F, A) ->
- io:format(user, "[~s][~s][~p] ~s" ++ F ++ "~n",
- [formated_timestamp(), get(sname), self(), Prefix | A]).
+ %% The two prints is to get the output both in the shell (for when
+ %% "personal" testing is going on) and in the logs.
+ FStr = f("[~s][~s][~p] ~s" ++ F,
+ [formated_timestamp(), get(sname), self(), Prefix | A]),
+ io:format(user, FStr ++ "~n", []),
+ io:format(FStr, []).
@@ -4005,11 +4068,11 @@ sock_bind(Sock, SockAddr) ->
{ok, Port} ->
Port;
{error, Reason} ->
- p("sock_bind -> error: ~p", [Reason]),
+ i("sock_bind -> error: ~p", [Reason]),
?FAIL({bind, Reason})
catch
C:E:S ->
- p("sock_bind -> failed: ~p, ~p, ~p", [C, E, S]),
+ i("sock_bind -> failed: ~p, ~p, ~p", [C, E, S]),
?FAIL({bind, C, E, S})
end.
@@ -4059,11 +4122,11 @@ sock_sockname(Sock) ->
%% {ok, Sock} ->
%% Sock;
%% {error, Reason} ->
-%% p("sock_accept -> error: ~p", [Reason]),
+%% i("sock_accept -> error: ~p", [Reason]),
%% ?FAIL({accept, Reason})
%% catch
%% C:E:S ->
-%% p("sock_accept -> failed: ~p, ~p, ~p", [C, E, S]),
+%% i("sock_accept -> failed: ~p, ~p, ~p", [C, E, S]),
%% ?FAIL({accept, C, E, S})
%% end.
@@ -4073,11 +4136,11 @@ sock_close(Sock) ->
ok ->
ok;
{error, Reason} ->
- p("sock_close -> error: ~p", [Reason]),
+ i("sock_close -> error: ~p", [Reason]),
?FAIL({close, Reason})
catch
C:E:S ->
- p("sock_close -> failed: ~p, ~p, ~p", [C, E, S]),
+ i("sock_close -> failed: ~p, ~p, ~p", [C, E, S]),
?FAIL({close, C, E, S})
end.
@@ -4130,10 +4193,12 @@ set_tc_name(N) when is_list(N) ->
tc_begin(TC) ->
set_tc_name(TC),
- p("begin ***").
+ tc_print("begin ***",
+ "~n----------------------------------------------------~n", "").
tc_end(Result) when is_list(Result) ->
- p("done: ~s", [Result]),
+ tc_print("done: ~s", [Result],
+ "", "----------------------------------------------------~n~n"),
ok.
@@ -4154,33 +4219,63 @@ tc_try(Case, Fun) when is_atom(Case) andalso is_function(Fun, 0) ->
end.
+tc_print(F, Before, After) ->
+ tc_print(F, [], Before, After).
+
+tc_print(F, A, Before, After) ->
+ Name = tc_which_name(),
+ FStr = f("*** [~s][~s][~p] " ++ F ++ "~n",
+ [formated_timestamp(),Name,self()|A]),
+ io:format(user, Before ++ FStr ++ After, []).
+tc_which_name() ->
+ case get(tc_name) of
+ undefined ->
+ case get(sname) of
+ undefined ->
+ "";
+ SName when is_list(SName) ->
+ SName
+ end;
+ Name when is_list(Name) ->
+ Name
+ end.
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% f(F, A) ->
-%% lists:flatten(io_lib:format(F, A)).
-
-p(F) ->
- p(F, []).
-
-p(F, A) ->
- TcName =
- case get(tc_name) of
- undefined ->
- case get(sname) of
- undefined ->
- "";
- SName when is_list(SName) ->
- SName
- end;
- Name when is_list(Name) ->
- Name
- end,
- i("*** [~s][~s][~p] " ++ F, [formated_timestamp(),TcName,self()|A]).
+f(F, A) ->
+ lists:flatten(io_lib:format(F, A)).
+%% p(F) ->
+%% p(F, []).
-%% i(F) ->
-%% i(F, []).
+%% p(F, A) ->
+%% p(F, A, "", "").
+
+%% p(F, A, Before, After) when is_list(Before) andalso is_list(After) ->
+%% TcName =
+%% case get(tc_name) of
+%% undefined ->
+%% case get(sname) of
+%% undefined ->
+%% "";
+%% SName when is_list(SName) ->
+%% SName
+%% end;
+%% Name when is_list(Name) ->
+%% Name
+%% end,
+%% FStr = f("*** [~s][~s][~p] " ++ F ++ "~n",
+%% [formated_timestamp(),TcName,self()|A]),
+%% i(Before ++ FStr ++ After, []).
+
+
+i(F) ->
+ i(F, []).
i(F, A) ->
- io:format(user, F ++ "~n", A).
+ FStr = f("[~s] " ++ F, [formated_timestamp()|A]),
+ io:format(user, FStr ++ "~n", []),
+ io:format(FStr, []).
+
diff --git a/lib/kernel/test/socket_client.erl b/erts/emulator/test/socket_client.erl
index 1c07e799b8..1c07e799b8 100644
--- a/lib/kernel/test/socket_client.erl
+++ b/erts/emulator/test/socket_client.erl
diff --git a/lib/kernel/test/socket_lib.erl b/erts/emulator/test/socket_lib.erl
index 9d6524d467..9d6524d467 100644
--- a/lib/kernel/test/socket_lib.erl
+++ b/erts/emulator/test/socket_lib.erl
diff --git a/lib/kernel/test/socket_server.erl b/erts/emulator/test/socket_server.erl
index 45adffc5e6..45adffc5e6 100644
--- a/lib/kernel/test/socket_server.erl
+++ b/erts/emulator/test/socket_server.erl
diff --git a/lib/kernel/test/Makefile b/lib/kernel/test/Makefile
index 28edf4889b..8b16e83707 100644
--- a/lib/kernel/test/Makefile
+++ b/lib/kernel/test/Makefile
@@ -24,11 +24,6 @@ include $(ERL_TOP)/make/$(TARGET)/otp.mk
# Target Specs
# ----------------------------------------------------
-SOCKET_MODULES = \
- socket_lib \
- socket_server \
- socket_client
-
MODULES= \
rpc_SUITE \
pdict_SUITE \
@@ -95,9 +90,7 @@ MODULES= \
sendfile_SUITE \
standard_error_SUITE \
multi_load_SUITE \
- zzz_SUITE \
- socket_SUITE \
- $(SOCKET_MODULES)
+ zzz_SUITE
APP_FILES = \
appinc.app \
@@ -134,7 +127,6 @@ ERL_COMPILE_FLAGS +=
EBIN = .
-SOCKET_TARGETS = $(SOCKET_MODULES:%=$(EBIN)/%.$(EMULATOR))
TARGETS = $(MODULES:%=$(EBIN)/%.$(EMULATOR))
@@ -160,8 +152,6 @@ docs:
targets: $(TARGETS)
-socket: $(SOCKET_TARGETS)
-
# ----------------------------------------------------
# Release Target