Files
clide/dart_test.yaml
jpmschweitzerandClaude b6eef3fc2b add a serial test lane for concurrency-vulnerable tests
Generalizes the pty split into an explicit "parallel=false" opt-out: a
`serial` tag (declared in dart_test.yaml). The parallel flutter run now
excludes `pty || serial`; a separate `flutter test --tags serial
--concurrency=1` pass runs the vulnerable ones. For the coverage gate the
two passes are real-merged by ci/merge_lcov.py (union DA, max hits, recompute
LF/LH) — a plain concat would double-count and corrupt the total.

Tag transcript_publisher's bus-republish test serial (it flaked in the
parallel pool). Gate verified green end-to-end at 95.08%.

T-193.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-05-31 19:26:17 +02:00

20 lines
1.1 KiB
YAML

# Declares tags used by inline `test('...', tags: [...], ...)` calls so
# that `flutter test --exclude-tags <name>` and `dart test --tags <name>`
# both honor them. Undeclared tags are ignored by the runners, which
# silently breaks selective excludes.
tags:
# Native-PTY tests (posix_openpt + posix_spawn via Dart FFI). Must run
# under `dart test`, not `flutter test`: the flutter-test runner hosts a
# multi-threaded engine in which the PTY master fd doesn't reliably
# deliver output, so these flake there (verified). They are reliable
# under `dart test`. (Tag was historically named `forkpty`, before
# T-96 replaced forkpty with posix_spawn.) See `test/pty/session_test.dart`.
pty:
# Concurrency-vulnerable tests that flake in the parallel flutter pool
# (e.g. MessageBus delivery races). The parallel run excludes them
# (`--exclude-tags "pty || serial"`); ci/test.sh runs a separate
# `--tags serial --concurrency=1` pass and merges its coverage. Prefer a
# deterministic await first — only tag `serial` when isolation is the real
# fix. (T-193)
serial: