Change summary
.github/workflows/randomized_tests.yml | 13 ++-----------
crates/gpui/src/test.rs | 2 +-
script/randomized-test-ci | 27 +++++++++++++++++++++++++++
3 files changed, 30 insertions(+), 12 deletions(-)
Detailed changes
@@ -14,8 +14,6 @@ env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: 1
- OPERATIONS: 200
- ITERATIONS: 10000
jobs:
tests:
@@ -40,12 +38,5 @@ jobs:
clean: false
submodules: 'recursive'
- - name: Select seed
- run: |
- set -eu
- seed=$(od -A n -N 8 -t u8 /dev/urandom | xargs)
- echo "seed: ${seed}"
- echo "SEED=${seed}" >> $GITHUB_ENV
-
- - name: Run tests
- run: cargo test --release --package collab random
+ - name: Run randomized tests
+ run: script/randomized-test-ci
@@ -76,7 +76,7 @@ pub fn run_test(
let seed = atomic_seed.load(SeqCst);
if is_randomized {
- dbg!(seed);
+ eprintln!("seed = {seed}");
}
let deterministic = executor::Deterministic::new(seed);
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# Compile the tests first
+mkdir -p target
+cargo test --release --package collab --no-run
+if [[ $? != 0 ]]; then
+ echo "Build failed"
+ exit 1
+fi
+
+set -eu
+
+LOG_FILE=target/randomized-tests.log
+export SAVE_PLAN=target/test-plan.json
+export OPERATIONS=200
+export ITERATIONS=10000
+export SEED=$(od -A n -N 8 -t u8 /dev/urandom | xargs)
+
+cargo test --release --package collab random -- --nocapture 2> >(tee $LOG_FILE)
+if [[ $? == 0 ]]; then
+ echo "Tests passed"
+ exit 0
+fi
+
+# If the tests failed, find the failing seed in the logs
+failing_seed=$(grep "failing seed" $LOG_FILE | cut -d: -f2 | xargs)
+echo "Tests failed. seed: $failing_seed"