First go at some PropEr tests, which join and leave a group, and make sure messages don't get lost.
Merge bug26210
Instrument certain calls to gs2:call/3 and gs2:cast/2, and allow PropEr to determine when they proceed. That makes things a lot more deterministic (although not fully) and lets us reproduce bug 26171 (small whoop).
Don't be so intrusive into gm.erl.
Oops.
Do "randomness" properly, trap exits.
Merge in stable
Better cleanup
Even better
Don't explode if the pid vanishes during is_gm_process/2. Keep on handling instrumented msgs while we are waiting for things to shut down, so that... they can.
Don't expect message delivery until we have had the joined callback invoked.
Oops, 3d7b7d85df74 got us into a degenerate case where our tests only ever consisted of joins.
Wait until a GM has actually left before forgetting it.
Be more correct about dynamic vs symbolic state; this gets us back into a position where we are actually testing sending messages :-/
Various bug fixes in generating command sequences.
Add instrumenting for monitors and Mnesia transactions. It actually all seems to work now.
Minor cleanup.
Simplify message assertions, don't use timestamps.
Control max_size, and remove some broken premature abstraction from the Makefile.
Merge bug24929