aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2016-06-16 08:44:49 +0200
committerLukas Larsson <[email protected]>2016-06-16 08:44:49 +0200
commit3c84636abdc7c84eb9c8ea929468721b99469721 (patch)
tree914cdfcca71a151a9c2e667e871f947ebaee92dc /erts/emulator/test
parent7bfb67a155f2adbb94df0d6a2e966c84951cd04a (diff)
parent4e87bebe004039465548ed432d363f2d7e42fee6 (diff)
downloadotp-3c84636abdc7c84eb9c8ea929468721b99469721.tar.gz
otp-3c84636abdc7c84eb9c8ea929468721b99469721.tar.bz2
otp-3c84636abdc7c84eb9c8ea929468721b99469721.zip
Merge branch 'lukas/erts/nif_allow_port_command_in_non_sched_thread/OTP-13442'
* lukas/erts/nif_allow_port_command_in_non_sched_thread/OTP-13442: erts: Allow enif_port_command in non-sched thread
Diffstat (limited to 'erts/emulator/test')
-rw-r--r--erts/emulator/test/trace_port_SUITE.erl22
1 files changed, 22 insertions, 0 deletions
diff --git a/erts/emulator/test/trace_port_SUITE.erl b/erts/emulator/test/trace_port_SUITE.erl
index a66563d15b..e4db368ea1 100644
--- a/erts/emulator/test/trace_port_SUITE.erl
+++ b/erts/emulator/test/trace_port_SUITE.erl
@@ -26,6 +26,7 @@
return_trace/1,
send/1,
receive_trace/1,
+ receive_trace_non_scheduler/1,
process_events/1,
schedule/1,
gc/1,
@@ -40,6 +41,7 @@ suite() ->
all() ->
[call_trace, return_trace, send, receive_trace,
+ receive_trace_non_scheduler,
process_events, schedule, gc,
default_tracer, tracer_port_crash].
@@ -184,6 +186,26 @@ receive_trace(Config) when is_list(Config) ->
expect({trace_ts,Receiver,'receive',Huge,ts}),
ok.
+%% Test sending receive traces to a port.
+receive_trace_non_scheduler(Config) when is_list(Config) ->
+ start_tracer(Config),
+ S = self(),
+ Receiver = spawn(
+ fun() ->
+ receive
+ go ->
+ Ref = S ! erlang:trace_delivered(all),
+ receive {trace_delivered, Ref, all} -> ok end
+ end
+ end),
+ trac(Receiver, true, ['receive']),
+ Receiver ! go,
+ Ref = receive R -> R end,
+ expect({trace,Receiver,'receive',go}),
+ expect({trace,Receiver,'receive',{trace_delivered, all, Ref}}),
+
+ ok.
+
%% Tests a few process events (like getting linked).
process_events(Config) when is_list(Config) ->
start_tracer(Config),