diff options
author | Sverker Eriksson <[email protected]> | 2016-03-15 19:53:42 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-05-04 19:53:37 +0200 |
commit | 8b2906d9974decf9e8bab24a8f753ba81a025410 (patch) | |
tree | 988f201ee7791214067393e73914c7b8e170d6ee /erts/emulator/test | |
parent | 3261d580be2263b7b4b70ec3c7670a5de963e91c (diff) | |
download | otp-8b2906d9974decf9e8bab24a8f753ba81a025410.tar.gz otp-8b2906d9974decf9e8bab24a8f753ba81a025410.tar.bz2 otp-8b2906d9974decf9e8bab24a8f753ba81a025410.zip |
erts: Add matchspec to 'receive' trace
Diffstat (limited to 'erts/emulator/test')
-rw-r--r-- | erts/emulator/test/trace_SUITE.erl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/erts/emulator/test/trace_SUITE.erl b/erts/emulator/test/trace_SUITE.erl index c8cc0fc6e8..7eb52dcdeb 100644 --- a/erts/emulator/test/trace_SUITE.erl +++ b/erts/emulator/test/trace_SUITE.erl @@ -94,6 +94,26 @@ receive_trace(Config) when is_list(Config) -> {trace, Receiver, 'receive', Hello2} = receive_first_trace(), receive_nothing(), + %% Test 'receive' with matchspec + F1 = fun ({Pat, IsMatching}) -> + set_trace_pattern('receive', Pat, []), + Receiver ! Hello, + case IsMatching of + true -> + {trace, Receiver, 'receive', Hello} = receive_first_trace(); + false -> + ok + end, + receive_nothing() + end, + lists:foreach(F1, [{no, true}, + {[{[undefined,"Unexpected"],[],[]}], false}, + {[{['_','_'],[],[]}], true}, + {[{['$1','_'],[{is_integer,'$1'}],[]}], false}, + {[{['_','$1'],[{is_tuple,'$1'}],[]}], true}, + {false, false}, + {true, true}]), + %% Another process should not be able to trace Receiver. Intruder = fun_spawn(fun() -> erlang:trace(Receiver, true, ['receive']) end), {'EXIT', Intruder, {badarg, _}} = receive_first(), |