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.