diag(quic-interop): tee runner stdout to sibling log + summarize reads it

Two paired changes:

(1) run-matrix.sh now tees the runner's full stdout (pre-grep-
    filter) to <RUN_LOG_DIR>.stdout.log — sibling rather than
    inside the log dir because run.py refuses to start if its own
    --log-dir already exists.

(2) summarize-matrix.sh checks that file FIRST when searching for
    'Test: X took Y, status:' lines — it has the authoritative
    runner output that wasn't being saved before.

Old runs (without the tee) fall back to qlog inspection.
This commit is contained in:
Claude
2026-05-07 14:36:15 +00:00
parent b0737f8655
commit 1f964db2a8
2 changed files with 10 additions and 0 deletions
+7
View File
@@ -142,8 +142,15 @@ if [ "${VERBOSE:-0}" = "1" ]; then
exec "$RUNNER_DIR/.venv/bin/python" run.py \
-d -i amethyst --log-dir "$RUN_LOG_DIR" "$@"
else
# Tee unfiltered stdout to a sibling file so summarize-matrix.sh
# can find the 'Test: X took Y, status:' lines later — the runner
# only writes those to its own stdout, not into per-testcase
# output.txt. Sibling rather than inside RUN_LOG_DIR because
# run.py refuses to start if its --log-dir already exists.
RUNNER_STDOUT="${RUN_LOG_DIR}.stdout.log"
"$RUNNER_DIR/.venv/bin/python" run.py \
-d -i amethyst --log-dir "$RUN_LOG_DIR" "$@" 2>&1 \
| tee "$RUNNER_STDOUT" \
| grep -Ev \
-e '^(client|server|sim) +\| +(Setting up routes|Actual changes:|tx-[a-z0-9-]+:|Endpoint'\''s IPv[46] address is)' \
-e '^ Container [a-z]+ +(Recreate|Recreated|Stopping|Stopped|Starting|Started)( [0-9.]+s)?$' \