From b847766d2c4ab26ba7c720cc7b46fefd2efaf1e0 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 31 May 2016 16:09:25 +0200 Subject: erl_interface: Fix signed int overflow tc bug --- lib/erl_interface/test/erl_eterm_SUITE_data/eterm_test.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/erl_interface/test/erl_eterm_SUITE_data/eterm_test.c b/lib/erl_interface/test/erl_eterm_SUITE_data/eterm_test.c index 687a45bbab..d97f218a26 100644 --- a/lib/erl_interface/test/erl_eterm_SUITE_data/eterm_test.c +++ b/lib/erl_interface/test/erl_eterm_SUITE_data/eterm_test.c @@ -149,7 +149,7 @@ TESTCASE(round_trip_conversion) { int v; - for (v = 8; v; v <<= 1) { + for (v = 8, n = 0; n < (sizeof(v)*8-4-1); v <<= 1, n++) { for (i=-4; i<4; i++) { encode_decode(erl_mk_int(v+i), "INT"); encode_decode(erl_mk_int(-(v+i)), "NEG INT"); @@ -166,7 +166,7 @@ TESTCASE(round_trip_conversion) } { long long v; - for (v = 8; v; v <<= 1) { + for (v = 8, n = 0; n < (sizeof(v)*8-4-1); v <<= 1, n++) { for (i=-4; i<4; i++) { encode_decode(erl_mk_longlong(v+i), "LONGLONG"); encode_decode(erl_mk_longlong(-(v+i)), "NEG LONGLONG"); -- cgit v1.2.3 From 7d0c75c91cbe903868efc51ffa6c721fe29447a2 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Wed, 1 Jun 2016 15:46:46 +0200 Subject: ssl: Fix use_interface dist_SSL test Doing inet:port will cause an port_control to be sent to the port, and not all ports in the vm can handle having arbitrary data sent to them. --- lib/ssl/test/ssl_dist_SUITE.erl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/ssl/test/ssl_dist_SUITE.erl b/lib/ssl/test/ssl_dist_SUITE.erl index e7cbfa63f4..2cf74ba37f 100644 --- a/lib/ssl/test/ssl_dist_SUITE.erl +++ b/lib/ssl/test/ssl_dist_SUITE.erl @@ -410,7 +410,7 @@ use_interface(Config) when is_list(Config) -> NH1, fun() -> [inet:sockname(P) || - P <- erlang:ports(), + P <- inet_ports(), {ok, Port} =:= (catch inet:port(P))] end), %% And check that it's actually listening on localhost. @@ -453,9 +453,11 @@ try_setting_priority(TestFun, Config) -> get_socket_priorities() -> [Priority || {ok,[{priority,Priority}]} <- - [inet:getopts(Port, [priority]) || - Port <- erlang:ports(), - element(2, erlang:port_info(Port, name)) =:= "tcp_inet"]]. + [inet:getopts(Port, [priority]) || Port <- inet_ports()]]. + +inet_ports() -> + [Port || Port <- erlang:ports(), + element(2, erlang:port_info(Port, name)) =:= "tcp_inet"]. %% %% test_server side api -- cgit v1.2.3 From 4a96eb9dadf453724860a7e2e060894dca360fd6 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 31 May 2016 14:40:25 +0200 Subject: os_mon: Make sure to start/stop os_mon in tests correctly --- lib/os_mon/test/cpu_sup_SUITE.erl | 2 +- lib/os_mon/test/os_mon_SUITE.erl | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/os_mon/test/cpu_sup_SUITE.erl b/lib/os_mon/test/cpu_sup_SUITE.erl index 41115ee6e2..7122d23503 100644 --- a/lib/os_mon/test/cpu_sup_SUITE.erl +++ b/lib/os_mon/test/cpu_sup_SUITE.erl @@ -256,7 +256,7 @@ unavailable(Config) when is_list(Config) -> restart(Config) when is_list(Config) -> ok = application:set_env(os_mon, start_cpu_sup, true), - {ok, _Pid} = supervisor:restart_child(os_mon_sup, cpu_sup), + supervisor:restart_child(os_mon_sup, cpu_sup), ok. %% Aux diff --git a/lib/os_mon/test/os_mon_SUITE.erl b/lib/os_mon/test/os_mon_SUITE.erl index 033a5ae162..c373b5d851 100644 --- a/lib/os_mon/test/os_mon_SUITE.erl +++ b/lib/os_mon/test/os_mon_SUITE.erl @@ -21,7 +21,7 @@ -include_lib("common_test/include/ct.hrl"). %% Test server specific exports --export([all/0, suite/0]). +-export([all/0, suite/0, init_per_suite/1, end_per_suite/1]). %% Test cases -export([app_file/1, appup_file/1, config/1]). @@ -36,6 +36,13 @@ all() -> _OS -> [app_file, appup_file] end. +init_per_suite(Config) -> + Config. + +end_per_suite(_Config) -> + application:stop(os_mon), + ok. + %% Testing .app file app_file(Config) when is_list(Config) -> ok = test_server:app_test(os_mon), -- cgit v1.2.3 From 7187d9a2c3728b1b32e9403ebb97e53c66e9b261 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 31 May 2016 14:39:58 +0200 Subject: kernel: Fix t_recv_delim on bsd TCP messages to not travel instantly on loopback on bsd, to we have to wait a little while for them to arrive. --- lib/kernel/test/gen_tcp_api_SUITE.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/kernel/test/gen_tcp_api_SUITE.erl b/lib/kernel/test/gen_tcp_api_SUITE.erl index 6f6f53309e..54298e6309 100644 --- a/lib/kernel/test/gen_tcp_api_SUITE.erl +++ b/lib/kernel/test/gen_tcp_api_SUITE.erl @@ -135,8 +135,8 @@ t_recv_delim(Config) when is_list(Config) -> {ok, Client} = gen_tcp:connect(localhost, Port, Opts), {ok, A} = gen_tcp:accept(L), ok = gen_tcp:send(A, "abcXefgX"), - {ok, "abcX"} = gen_tcp:recv(Client, 0, 0), - {ok, "efgX"} = gen_tcp:recv(Client, 0, 0), + {ok, "abcX"} = gen_tcp:recv(Client, 0, 200), + {ok, "efgX"} = gen_tcp:recv(Client, 0, 200), ok = gen_tcp:close(Client), ok = gen_tcp:close(A), ok. -- cgit v1.2.3 From 7c300789fffeacb24f1d00aa6e0797e06166c3c6 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Fri, 3 Jun 2016 11:59:54 +0200 Subject: kernel: Better explain controlling_process' tcp behaviour --- lib/kernel/doc/src/gen_tcp.xml | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib') diff --git a/lib/kernel/doc/src/gen_tcp.xml b/lib/kernel/doc/src/gen_tcp.xml index 8bd94892ad..15a2f02c76 100644 --- a/lib/kernel/doc/src/gen_tcp.xml +++ b/lib/kernel/doc/src/gen_tcp.xml @@ -223,6 +223,14 @@ do_recv(Sock, Bs) -> that receives messages from the socket. If called by any other process than the current controlling process, {error, not_owner} is returned.

+

If the socket is set in active mode, this function + will transfer any messages in the mailbox of the caller + to the new controlling process. + If any other process is interacting with the socket while + the transfer is happening, the transfer may not work correctly + and messages may remain in the caller's mailbox. For instance + changing the sockets active mode before the transfere is complete + may cause this.

-- cgit v1.2.3