Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion quest/m0/nightly/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Public API: none. Wire: none.

## Required

- [Windows builds moq-relay tests](/quest/m0/nightly/windows-relay-expect.md) - an unfulfilled lint expectation stops failing the Windows build
- [OBS audio-candidate test](/quest/m0/nightly/obs-audio-candidate.md) - the failed audio candidate check passes under TSan and load, fixed at its reproduced cause
- [Feature shapes per crate](/quest/m0/nightly/hls-poll-closed-gate.md) - moq-hls `Broadcaster::poll_closed` is gated on `server`, and the gate checks each crate's feature shapes in isolation
- [moq-relay tests build without default features](/quest/m0/nightly/relay-tests-features.md) - the integration tests gate their websocket and unix-socket fields on the features that define them
- [qmux builds clean for iOS](/quest/m0/nightly/qmux-ios-dead-code.md) - `TcpStats` is gated to the platforms that implement it, so the iOS simulator build has no dead code
29 changes: 29 additions & 0 deletions quest/m0/nightly/qmux-ios-dead-code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# [XS] qmux builds clean for iOS

## Goal

`rs/qmux` compiles for the iOS targets `just swift simulator` builds with no
warnings: `socket.rs`'s `AsRawFd` import, `TcpStats::fd`, and
`TcpStats::borrow` stop showing as dead code there.

## Plan

They sit in `mod unix` under `#[cfg(unix)]`, but only the Linux and macOS
`sys` modules read them, so on iOS (unix, neither OS) they are unused. Gate
`TcpStats` and what only it uses on `any(target_os = "linux", target_os =
"macos")`, matching the platforms that implement it, rather than adding an
allow. Its `cfg(unix)` callers follow the same gate and report no socket
stats elsewhere, as they already do off unix: `qmux::tcp::adopt`
(`rs/qmux/src/tcp.rs`), the `lib.rs` re-export, and moq-relay's
`socket_stats` (`rs/moq-relay/src/web.rs`).

Decided 2026-10-26 (maintainer): fix qmux only. Making the Platform
`cargo check` steps and `just swift simulator` deny warnings is out of scope.

Found in Nightly
[40192013303](https://github.com/moq-dev/moq/actions/runs/40192013303)'s
macOS platform job, which passes only because those steps do not deny
warnings.

Public API: `qmux::TcpStats` stops existing on iOS, where it never worked.
Wire: none.
22 changes: 22 additions & 0 deletions quest/m0/nightly/relay-tests-features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# [XS] moq-relay tests build without default features

## Goal

`cargo clippy -p moq-relay --tests --no-default-features` passes with
warnings denied. Its integration tests use `listen::Config.unix` and
`connect::Config.websocket` only under the features that define them.

## Plan

Seven `E0609`s, in `rs/moq-relay/tests/integration/{smoke,auth_lifetime,cluster_unknown,public_rules,session_revalidate}.rs`.
Gate each use (or the tests that need the transport) on its feature instead
of turning the features on for every test build.

No CI lane builds this shape today. Workspace unification enables moq-relay's
defaults through moq-cli, and Nightly runs
`cargo check -p moq-relay --no-default-features` without `--tests`. Decided
2026-10-26 (maintainer): fix it here on its own; the per-crate lane in
[Feature shapes per crate](/quest/m0/nightly/hls-poll-closed-gate.md) keeps it
fixed once that lands.

Public API: none. Wire: none.
23 changes: 0 additions & 23 deletions quest/m0/nightly/windows-relay-expect.md

This file was deleted.

1 change: 1 addition & 0 deletions quest/m1/test-flakes-2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ Public API: none. Wire: none.
- [Media resource instrumentation](/quest/m1/test-flakes-2/resource-instrumentation.md) - the media test stops seeing a playing player report nothing to release
- [IETF22 fallback](/quest/m1/test-flakes-2/ietf22-fallback.md) - an IETF22 browser viewer follows a fallback within the media lane's bound, keeping its session and its audio
- [Echo report test on mocked time](/quest/m1/test-flakes-2/export-echo-time.md) - the moq-cli echo report test stops taking 35 s of wall time
- [Stuck-window eviction test on macOS](/quest/m1/test-flakes-2/stuck-window-evicts.md) - the evicted writer reliably sees its stop on macOS, fixed at the race
25 changes: 25 additions & 0 deletions quest/m1/test-flakes-2/stuck-window-evicts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# [S] Stuck-window eviction test on macOS

## Goal

`quic::driver::tests::stuck_window_evicts_the_lower_priority`
(`rs/moq-tokio/src/quic/driver/tests.rs`) passes reliably on macOS, fixed at
its cause.

## Plan

It failed in Platform run
[40232491446](https://github.com/moq-dev/moq/actions/runs/40232491446) (job
121287165236): the evicted low-priority writer's `stopped()` returned `None`
instead of `Some(0)`, then passed in the next two runs. The likely cause is a
real-socket race: the low stream's write and FIN complete before
STOP_SENDING arrives. Reproduce it first, then make the ordering
deterministic per this epic's rules (hold the low stream open until the
eviction is observed, or drive it without real-socket timing), never by
loosening the assertion.

The deleted macOS `receive_credit` quest mentioned this test, but
[moq-dev/moq#6732](https://github.com/moq-dev/moq/pull/6732) fixed only
`receive_credit`.

Public API: none. Wire: none.
Loading