I’ve got some eunit code that looks a bit like this:
% ...
meck:wait(m, f, '_', 2000), % L1
receive % L2
message1 -> ok
end,
receive % L3
message2 -> ok
end
% ...
message2
is never sent, so the receive
at L3
never completes, so eunit
kills my test with a timeout. This is expected.
But: the location reported is L1
, rather than the expected L3
. It looks like receive
expressions don’t appear in stack traces.
It’s probably not relevant that I’m using meck
– if I add some code in between the two receive
expressions, the reported location is that of the added code.
This is with Erlang/OTP 26.2.5.3.