Skip to content

test: link each crate's integration tests into one binary - #5689

Merged
kixelated merged 14 commits into
mainfrom
quest/m0/ci/test-cost
Oct 16, 2026
Merged

kixelated merged 14 commits into
mainfrom
quest/m0/ci/test-cost

Conversation

@kixelated

@kixelated kixelated commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Completes quest/m0/ci/test-cost.md.

When I measured, running the Rust tests took little CPU. Compiling and linking the test binaries took most of it. Two changes cut that cost without dropping any test:

  • One integration binary per crate. moq-net, moq-relay, moq-tokio, and moq-uring built one binary per tests/*.rs file, 91 in total on current main. Each binary linked the crate and its dependencies again. The files are now modules under tests/integration/, which leaves 10 binaries. Six files stay as their own binaries:
    • drills, so each sensitivity mutation rebuilds only the drills.
    • allocations (moq-uring) and group_charge (moq-net), because each one's counting global allocator would apply to every test in the binary.
    • loom and wasm, because they build for another cfg or target.
    • send (from fix(net): prove native futures Send at the default recursion limit #5682), because just rs send-depth checks it alone on nightly.
  • Narrower just rs play. It runs only the moq binary's own tests now. Before, it also re-ran moq-cli's four integration suites against a play-enabled binary. Those suites spawn export, import, listen, and auth and never reach play code, and the default-feature pass already runs them.

Other changes:

  • Drill sensitivity runs only in nightly. The advisory PR job, its drill-pr selector, and the selector's test are removed.
  • rs/AGENTS.md sends new session tests to the crate's tests/integration/ module.
  • References to the moved files are updated: the nextest io-uring group filter, the max-age recipe and the interop path trigger, the benches that include the test support, and the quest and README paths.
  • A new quest, quest/m0/ci/dart-ffi-build.md, records the Dart duplicate build described below.

Measurements

Setup for each crate:

  • Clean the crate's own artifacts, then build --tests without mbx, so the compile CPU is real.
  • 8 jobs on x86 Linux, with the host loaded at about 50 on 24 threads.
  • One sample per row. Treat the numbers as magnitudes, not benchmarks.
Target Before CPU / wall After CPU / wall
moq-net tests 269 s / 56 s 67 s / 32 s
moq-relay tests 139 s / 41 s 44 s / 14 s
moq-tokio tests 108 s / 37 s 48 s / 16 s
moq-uring tests 56 s / 22 s 18 s / 10 s
moq-cli play build 56 s / 18 s 19 s / 13 s
Total 628 s 196 s

The play pass also stops spending about 6 CPU-s and about 100 s of summed test wall time per run. Those were export linger waits. moq-cli is selected by most Rust PRs.

Test counts are unchanged. moq-net runs 2241 tests, and moq-relay, moq-tokio, and moq-uring together run 919. Both match the cache.yml warm run on main.

Inventory (what I measured and left alone)

  • Rust test runtime is mostly waiting. In the full warm run on main, nextest ran 7845 tests in 160 s wall, with 636 s of summed test time. Locally the whole moq-relay suite used 15.7 CPU-s for 192 s of summed wall time. The slow tests block on real timeouts and use little CPU, so retiring them would save runner slots but little CPU.
  • Version-matrix and loopback/impaired drill pairs cost under 2 CPU-s each and cover distinct transports and versions, so I kept them.
  • capture-test re-runs the 466 moq-video and moq-audio tests in 6 s. capture changes encoder code paths, so the re-run is distinct signal. Kept.
  • JS: @moq/publish (25 s) and @moq/net (20 s) are mostly real-timer waits, which costs wall time rather than CPU. Kept.
  • The Dart check builds release moq-ffi twice: once in generate.sh, then again in dart test's build hook. In Check run 38853884676 that took about 6.7 min plus 6 min, the largest single item in the Check job. This is a duplicated build, not a redundant test, so I recorded it as quest/m0/ci/dart-ffi-build.md instead of fixing it here.
  • Drill sensitivity (ci: prove affected drill mutations on pull requests #5599): the job did work in 1 of 18 recent Check runs, and that run took 16 min. It is advisory and runs only when a mutation's targets change. It landed hours before this quest started, so I first left it alone; decision 2 moves it to nightly.

Public API and wire impact

None.

Nextest binary IDs change: integration tests now report as <crate>::integration <module>::<test>. Any external filter on the old binary_id needs a test(/^module::/) filter instead. The in-repo filters are updated.

Checks

Run locally:

  • just rs test for moq-net, moq-relay, moq-tokio, moq-uring, and just rs play
  • just rs net-features and just rs uring (including uring-check and qlog)
  • clippy on the moq-net and moq-uring benches with all features
  • the max-age filter listing
  • cargo fmt, quest check, markdown, just gh check, justfile fmt, sh/rs/test-lints.test.py

Run locally after the decisions: just gh check and just --fmt --check on test/justfile.

Not run locally:

  • The full just check. The rs/justfile and nextest config changes select the whole workspace, so CI covers it.
  • macOS and Windows compiles (merge-queue platform gates).
  • The max-age interop run itself.

Decisions

Settled by the maintainer.

  1. Guard against new top-level tests/*.rs files? A stray file still runs its tests; it only costs one more link.
    • No guard, and leave rs/AGENTS.md alone.
    • ✅ No guard, but point rs/AGENTS.md at the crate's tests/integration/ module. Done in this PR.
    • Add a check that fails on any top-level test file outside an allowlist.
    • autotests = false with explicit [[test]] entries. Rejected: a stray file would silently not run.
  2. Drill sensitivity PR job (ci: prove affected drill mutations on pull requests #5599).
    • Keep it on PRs until the drills run on controlled time.
    • ✅ Run it only in nightly. Nightly already runs every mutation, so this PR drops the advisory PR job, its drill-pr selector, and the selector's test. just check still runs --apply-only when Rust or test/drill/ changes.
  3. In-flight PRs. fix(net): prove native futures Send at the default recursion limit #5682 (send.rs) and feat(quic): hold connection credit until the receiver releases it #5675 (credit.rs) already merged and are handled above. About 19 open PRs touch the moved files. Trial merges of feat(net)!: share exclusion scopes and report discovery refusals #5627, feat(net)!: carry group ranges on track::Subscription #5732, and moq-net: bound incomplete messages with receive credit #5735 show git follows the renames, so edits to moved files merge cleanly. New top-level files need a move:

Follow-ups

  • Fix the duplicate Dart moq-ffi build. It is recorded in quest/m0/ci/dart-ffi-build.md with run evidence.
  • moq-cli (4), moq-audio (3), moq-json (2), and moq-pattern (2) still build several integration binaries each. Recommendation: skip; the savings are small.
  • The wall-clock waits (10 s dial timeouts, cluster idle detection) belong to the existing controlled-time quests, not test retirement.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 2 commits October 15, 2026 22:23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
moq-net, moq-relay, moq-tokio, and moq-uring linked one test binary per
tests/*.rs file, 89 in all, each relinking the crate and its dependencies.
Fold them into tests/integration/ modules, leaving 8 binaries: drills,
allocations, loom, and wasm stay apart. The moq-cli play pass now runs only the
binary's own tests, since its integration tests exercise no play code and the
default pass runs them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Outcome: the quest is complete in this PR. It folds 89 integration test binaries in moq-net, moq-relay, moq-tokio, and moq-uring into 8. It also narrows the moq-cli play pass to the binary's own tests. Measured build CPU went from 628 s to 196 s, with the same test counts. The Dart duplicate moq-ffi build is recorded under quest/m0/ci/setup-cost.md. The PR stays a draft until the maintainer settles the three open decisions in the description.

(Written by Claude Opus 5.5)

@kixelated

kixelated commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator Author

Iterate pass on 7d10ca8: no code changes were needed.

(Written by Claude Opus 5.5)

kixelated and others added 2 commits October 16, 2026 14:01
Nightly already runs every mutation. The PR job stays advisory while the drills'
sockets run on the host clock, so it spent runner time without gating
anything. Drop it with its selector and point rs/AGENTS.md at the
`tests/integration/` module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review October 16, 2026 21:01
@kixelated

Copy link
Copy Markdown
Collaborator Author

@codex review

(Written by Claude Opus 5.5)

@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 01b5eb0e-fff6-424f-830b-aa4a312cf788
📥 Commits

Reviewing files that changed from the base of the PR and between 977223d and 923d868.

📒 Files selected for processing: 130
  • .config/nextest.toml
  • .github/justfile
  • .github/workflows/check.yml
  • .github/workflows/interop.yml
  • js/net/src/untimed.test.ts
  • quest/m0/ci/README.md
  • quest/m0/ci/dart-ffi-build.md
  • quest/m0/ci/test-cost.md
  • quest/m1/claim-answer-epochs.md
  • quest/m1/close-tail-drain.md
  • quest/m1/cluster-routing/routes.md
  • quest/m1/lite07-finalize.md
  • quest/m1/probe-on-demand-rs.md
  • quest/m1/public-model/ingest.md
  • quest/m1/restart-followers.md
  • quest/m1/test-flakes-2/auth-refresh-mock-time.md
  • quest/m1/test-flakes-2/uring-teardown-close.md
  • quest/m1/time/uring.md
  • quest/m2/uring-connection-log.md
  • quest/m2/uring-ietf.md
  • quest/m3/hidden-exemption.md
  • quest/m3/uring-tcp/relay.md
  • rs/AGENTS.md
  • rs/justfile
  • rs/moq-net/benches/auth.rs
  • rs/moq-net/benches/origin.rs
  • rs/moq-net/benches/session.rs
  • rs/moq-net/tests/integration/announce_covering_route.rs
  • rs/moq-net/tests/integration/announce_to_serve.rs
  • rs/moq-net/tests/integration/auth.rs
  • rs/moq-net/tests/integration/broadcast_close.rs
  • rs/moq-net/tests/integration/catalog_acquisition.rs
  • rs/moq-net/tests/integration/datagram.rs
  • rs/moq-net/tests/integration/dial_split_horizon.rs
  • rs/moq-net/tests/integration/drained_claim.rs
  • rs/moq-net/tests/integration/empty_group.rs
  • rs/moq-net/tests/integration/extensions.rs
  • rs/moq-net/tests/integration/fetch_cancel.rs
  • rs/moq-net/tests/integration/fetch_caps.rs
  • rs/moq-net/tests/integration/fetch_from_feed.rs
  • rs/moq-net/tests/integration/fetch_only.rs
  • rs/moq-net/tests/integration/finished_broadcast_mock.rs
  • rs/moq-net/tests/integration/finite_relay.rs
  • rs/moq-net/tests/integration/goaway.rs
  • rs/moq-net/tests/integration/group_order.rs
  • rs/moq-net/tests/integration/head_fetch.rs
  • rs/moq-net/tests/integration/history_groups.rs
  • rs/moq-net/tests/integration/idle_cancel_refetch.rs
  • rs/moq-net/tests/integration/idle_session.rs
  • rs/moq-net/tests/integration/late_lower_group.rs
  • rs/moq-net/tests/integration/main.rs
  • rs/moq-net/tests/integration/mesh_withdraw.rs
  • rs/moq-net/tests/integration/model.rs
  • rs/moq-net/tests/integration/multi_cdn.rs
  • rs/moq-net/tests/integration/quiet_catalog.rs
  • rs/moq-net/tests/integration/rejoin.rs
  • rs/moq-net/tests/integration/replacement.rs
  • rs/moq-net/tests/integration/request_caps.rs
  • rs/moq-net/tests/integration/restart.rs
  • rs/moq-net/tests/integration/route_change.rs
  • rs/moq-net/tests/integration/routing_contracts/mod.rs
  • rs/moq-net/tests/integration/routing_contracts/model.rs
  • rs/moq-net/tests/integration/session_close.rs
  • rs/moq-net/tests/integration/session_panic.rs
  • rs/moq-net/tests/integration/settled_end_survives_abort.rs
  • rs/moq-net/tests/integration/subscribe_tracks.rs
  • rs/moq-net/tests/integration/subscription_end_integrity.rs
  • rs/moq-net/tests/integration/support/harness.rs
  • rs/moq-net/tests/integration/support/mock.rs
  • rs/moq-net/tests/integration/support/mod.rs
  • rs/moq-net/tests/integration/track_abort_over_session.rs
  • rs/moq-net/tests/integration/track_info_cancel.rs
  • rs/moq-net/tests/integration/track_stream_demand.rs
  • rs/moq-net/tests/integration/track_tail.rs
  • rs/moq-net/tests/integration/unannounce_release.rs
  • rs/moq-net/tests/integration/untimed.rs
  • rs/moq-net/tests/integration/wide_sequence.rs
  • rs/moq-net/tests/integration/zero_copy.rs
  • rs/moq-relay/tests/integration/auth_embedder.rs
  • rs/moq-relay/tests/integration/auth_lifetime.rs
  • rs/moq-relay/tests/integration/cluster_idle.rs
  • rs/moq-relay/tests/integration/cluster_unknown.rs
  • rs/moq-relay/tests/integration/embed.rs
  • rs/moq-relay/tests/integration/goaway_cluster.rs
  • rs/moq-relay/tests/integration/hidden_cluster.rs
  • rs/moq-relay/tests/integration/lan_mesh.rs
  • rs/moq-relay/tests/integration/main.rs
  • rs/moq-relay/tests/integration/public_rules.rs
  • rs/moq-relay/tests/integration/refusals.rs
  • rs/moq-relay/tests/integration/released_cli.rs
  • rs/moq-relay/tests/integration/runtime_uring.rs
  • rs/moq-relay/tests/integration/runtime_workers.rs
  • rs/moq-relay/tests/integration/session_revalidate.rs
  • rs/moq-relay/tests/integration/shutdown_signal.rs
  • rs/moq-relay/tests/integration/smoke.rs
  • rs/moq-relay/tests/integration/stack.rs
  • rs/moq-relay/tests/integration/upstream_links.rs
  • rs/moq-tokio/src/client.rs
  • rs/moq-tokio/tests/integration/alpn.rs
  • rs/moq-tokio/tests/integration/backend.rs
  • rs/moq-tokio/tests/integration/broadcast.rs
  • rs/moq-tokio/tests/integration/close_code.rs
  • rs/moq-tokio/tests/integration/main.rs
  • rs/moq-tokio/tests/integration/max_age.rs
  • rs/moq-tokio/tests/integration/reconnect.rs
  • rs/moq-tokio/tests/integration/stream_code.rs
  • rs/moq-tokio/tests/integration/subscription_end_integrity.rs
  • rs/moq-tokio/tests/integration/unannounce.rs
  • rs/moq-tokio/tests/integration/worker.rs
  • rs/moq-uring/README.md
  • rs/moq-uring/benches/echo_quic.rs
  • rs/moq-uring/benches/session_lite.rs
  • rs/moq-uring/tests/integration/credit.rs
  • rs/moq-uring/tests/integration/echo.rs
  • rs/moq-uring/tests/integration/ecn.rs
  • rs/moq-uring/tests/integration/endpoint.rs
  • rs/moq-uring/tests/integration/identity.rs
  • rs/moq-uring/tests/integration/main.rs
  • rs/moq-uring/tests/integration/qlog.rs
  • rs/moq-uring/tests/integration/session.rs
  • rs/moq-uring/tests/integration/support.rs
  • rs/moq-uring/tests/integration/teardown.rs
  • rs/moq-uring/tests/integration/transport.rs
  • rs/moq-uring/tests/integration/web.rs
  • rs/moq-uring/tests/integration/workers.rs
  • test/drill/README.md
  • test/drill/pr.py
  • test/drill/pr.test.py
  • test/justfile
  • test/ts/README.md
💤 Files with no reviewable changes: 5
  • test/drill/pr.test.py
  • .github/workflows/check.yml
  • test/drill/pr.py
  • .github/justfile
  • quest/m0/ci/test-cost.md

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 0 remain after this review.

Walkthrough

The Rust integration tests are declared in shared binaries for moq-net, moq-relay, moq-tokio, and moq-uring. Tests and benchmarks now reference shared integration-test support, and test recipes and CI filters target the integration binaries. The pull-request sensitivity-drill selector, workflow job, and related tests are removed. CI planning documents now cover a Dart FFI build item.

Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to 923d8

The test consolidation and CI updates appear mergeable after normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the primary change: combining each crate's integration tests into one binary.
Description check Passed The description is directly related to the changeset and explains the test-binary consolidation, CI changes, path updates, measurements, decisions, and validation.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 5…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 50 files. (41 skipped: 24 unsupported, 17 over the file limit.)

✨ Finishing Touches
✨ Simplify code
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

🔧 Clippy (1.98.1)

Clippy execution timed out

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T21:48:23.511089Z 923d868 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a5aa47a5c9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread rs/moq-net/tests/integration/main.rs Outdated
mod finished_broadcast_mock;
mod finite_relay;
mod goaway;
mod group_charge;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the counting allocator in a separate test binary

With the default async feature on 64-bit targets, declaring group_charge here installs its #[global_allocator] for the entire integration crate, so every one of the other moq-net integration tests now performs thread-local accounting on every allocation. This defeats the file's explicit requirement that the counting allocator have a binary to itself and can materially increase the runtime of the whole suite; leave group_charge.rs as a top-level standalone test rather than importing it into this session-test binary.

AGENTS.md reference: rs/AGENTS.md:L51-L54

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. a6e1fb7 moves group_charge.rs back to a top-level test binary and notes why in integration/main.rs.

(Written by Claude Opus 5.5)

Its #[global_allocator] would otherwise count every allocation in every
moq-net integration test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

@codex review

(Written by Claude Opus 5.5)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a6e1fb72b2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

//! apply to every test in the binary.

mod credit;
mod echo;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the remaining references to the moved tests

After relocating these tests, several repository references still point to paths that no longer exist: rs/moq-uring/README.md:95-102 names five old tests/*.rs paths, rs/moq-tokio/src/client.rs:1513 names tests/broadcast.rs, and quests such as quest/m1/public-model/ingest.md:46 and quest/m1/claim-answer-epochs.md:88 retain old paths. Update these references to tests/integration/... so contributors can locate the tests after this reorganization.

AGENTS.md reference: AGENTS.md:L29-L29

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. 41ce0f0 updates the moq-uring README, the moq-tokio client comment, and both quests to point at tests/integration/. A wider search found no other stale paths.

(Written by Claude Opus 5.5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

@codex review

(Written by Claude Opus 5.5)

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: 41ce0f0b3b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@kixelated

Copy link
Copy Markdown
Collaborator Author

Ready to merge at 41ce0f0.

  • The maintainer's decisions are applied. rs/AGENTS.md points new session tests at tests/integration/. Drill sensitivity now runs only in nightly: the advisory PR job, its drill-pr selector, and the selector's test are removed, since nightly already runs every mutation.
  • Codex review: two findings, both fixed. group_charge.rs is back in its own binary, because its counting allocator would apply to the whole suite. The stale tests/*.rs references in the moq-uring README, a moq-tokio comment, and two quests now point at tests/integration/. The final head has no findings.
  • CI is green. io_uring failed once on bursts_cross_a_transport_peer::impaired in the unchanged drills binary ("the route was withdrawn while the peer link was up"). The rerun passed.
  • Once this merges, each open PR that adds a top-level test file gets a comment to move it into tests/integration/.

(Written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge October 16, 2026 21:44
@kixelated
kixelated disabled auto-merge October 16, 2026 21:45
@kixelated
kixelated enabled auto-merge October 16, 2026 21:45
@kixelated
kixelated added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit bca32c6 Oct 16, 2026
16 checks passed
@kixelated
kixelated deleted the quest/m0/ci/test-cost branch October 16, 2026 22:22
kixelated added a commit that referenced this pull request Oct 16, 2026
Follow #5689's layout, so the moq-net, moq-tokio and moq-uring
`receive_credit` tests build as modules of `tests/integration` rather than
as their own binaries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Oct 17, 2026
#5689 linked the integration tests into one binary, so the adapter source
included by the transport module now resolves crate::quic at main.rs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Oct 17, 2026
…lock

Move the caught-up integration test into tests/integration (#5689), hold the
snapshot's origin handle in a SendCell like the rest of the origin, and use
@moq/clock's Milli in the Reload test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Oct 17, 2026
Counts each subscriber's ranges into the incremental demand from #5670,
caching their union until a range first appears or last leaves. Moves
subscribe_ranges into the moq-net integration binary from #5689.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant