diff options
author | Lukas Larsson <[email protected]> | 2016-06-16 08:44:49 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2016-06-16 08:44:49 +0200 |
commit | 3c84636abdc7c84eb9c8ea929468721b99469721 (patch) | |
tree | 914cdfcca71a151a9c2e667e871f947ebaee92dc /erts/emulator/test | |
parent | 7bfb67a155f2adbb94df0d6a2e966c84951cd04a (diff) | |
parent | 4e87bebe004039465548ed432d363f2d7e42fee6 (diff) | |
download | otp-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.erl | 22 |
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), |