This PR makes a few changes to improve the active-to-passive test translation:
The test runner now produces a full log of all RPCs. This is pretty chatty, since a lot of messages are reproduced as outputs and then input.s But it's very easy to parse.
The active-to-passive conversion script now uses the RPC log to build the passive tests.
The new active_to_passive.sh shell script runs all the configs and generates passive tests from them. It currently does not run on deep_random.json because the output is too large (Node says Error: Cannot create a string longer than 0x1fffffe8 characters).
The passive client tests resulting from this process with MLSpp are checked in under interop/passive.
I have verified that the overall system holds together with MLSpp:
# Run the MLSpp interop harness
mlspp_client -live 50001
# Generate the passive tests
./active_to_passive.sh
# Verify the passive tests in MLSpp
for name in `ls passive`
do
# 13 == passive client test vector
mlspp_client -ver 13 <$name
done
Note that there are some tests that do not result in any passive client tests right now, for example, the application data protection tests. This is largely because we are creating groups with external_join, and will get better once #144 is fixed
This PR makes a few changes to improve the active-to-passive test translation:
The test runner now produces a full log of all RPCs. This is pretty chatty, since a lot of messages are reproduced as outputs and then input.s But it's very easy to parse.
The active-to-passive conversion script now uses the RPC log to build the passive tests.
The new
active_to_passive.sh
shell script runs all the configs and generates passive tests from them. It currently does not run ondeep_random.json
because the output is too large (Node saysError: Cannot create a string longer than 0x1fffffe8 characters
).The passive client tests resulting from this process with MLSpp are checked in under
interop/passive
.I have verified that the overall system holds together with MLSpp:
Note that there are some tests that do not result in any passive client tests right now, for example, the application data protection tests. This is largely because we are creating groups with
external_join
, and will get better once #144 is fixed