mlswg / mls-implementations

Coordination of implementation and interop specific details
109 stars 14 forks source link

Add a deep test scenario #156

Closed bifurcation closed 1 year ago

bifurcation commented 1 year ago

This PR adds a script deep.py to generate random "deep" test scenarios. These scenarios simulate the life of a group over many commits, and are a good way to flush out corner cases. The script as configured here creates an initial group of 5 members, then applies 100 commits applying a mix of Add, Remove, and Update proposals. Occasionally, an external commit is mixed in, which is sometimes a resync commit by an existing member.

Right now, there are several code paths that are not covered by the test scripts generated by the tooling here. I left several TODOs in the generator script to indicate some of the more obvious ones.

I have verified that MLSpp interoperates with itself on deep_random.json, after one minor bug fix.