[erlang-questions] Testing gen_statem timers

Roger Lipscombe roger@REDACTED
Thu Aug 15 19:16:10 CEST 2019


I'm not convinced that this is how I'd do it these days, but I dug
through some of our existing unit tests and found some code that uses
dbg:tpl(erlang, send_after, ...), etc. to track whether a process has
pending timers.

I yoinked it out of our source tree and stuck it in a gist:
https://gist.github.com/rlipscombe/a0970b147b35cfea6330533431e3de4c

On Thu, 15 Aug 2019 at 12:35, Micael Nussbaumer
<micaelnussbaumer@REDACTED> wrote:
>
> Hi, first time poster (but I've read many threads in here).
>
> How does one usually test gen_statem internal timer events?
> Usually you test the effects of the behaviour somehow, and I can test that. But in this particular case I had a situation where timers with uniq references are created, later on they usually get removed and all is fine - they're created for each extra worker started and at some point the worker is removed by the timer event that trigger checking some conditions.
>
> I noticed after that, the way I had written it, if an extra worker was started then died for some other reason than the timer event taking it out, I could theoretically accumulate timers that wouldn't be removed, I've since then corrected that but still I have no tests ensuring me that it actually works.
> So my question is if there's any even way to test it (even if with tracing)?
> Thanks
>
> Micael Nussbaumer
> artistic portfolio
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list