testing/concurrent-simulator/README.md
Deterministic concurrent simulator for Turso.
To collect line coverage from actual Whopper execution:
make whopper-coverage WHOPPER_RUNS=10
Pass regular Whopper CLI flags through WHOPPER_ARGS:
make whopper-coverage WHOPPER_RUNS=10 \
WHOPPER_ARGS="--mode fast --max-steps 10000 --multiprocess --processes 2 --connections-per-process 2"
Reports are written to:
.coverage/whopper/report.txt.coverage/whopper/html/index.htmlbrew install leiningen openjdk graphviz
sudo ln -sfn $(brew --prefix openjdk)/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
# Build elle-cli
git clone --depth 1 https://github.com/ligurio/elle-cli.git /tmp/elle-cli
cd /tmp/elle-cli && lein uberjar
Get the seed from CI logs and run the sim:
cargo build -p turso_whopper
SEED=14201626211019268779 ./target/debug/turso_whopper \
--elle list-append \
--elle-output elle-history.edn \
--max-steps 100000 \
--enable-mvcc
and then elle:
java -jar /tmp/elle-cli/target/elle-cli-0.1.9-standalone.jar \
--model list-append \
--consistency-models snapshot-isolation \
--verbose \
--directory elle-results \
elle-history.edn