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>
20 lines
1.1 KiB
YAML
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:
|