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.
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.