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
1 change: 1 addition & 0 deletions quest/m0/checks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ Each child reports its CPU saved, cold and warm, against `origin/main`.

- [A warm gate](/quest/m0/checks/cache.md) - the land gate builds through mbx, as moq's does
- [Fixtures that merge](/quest/m0/checks/fixture-layout.md) - `lang` splits by module, and `reject`'s snapshots key by item, not line
- [A case's inputs stay as cases are added](/quest/m0/checks/case-inputs.md) - each differential case's generated inputs are seeded by its name
24 changes: 24 additions & 0 deletions quest/m0/checks/case-inputs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# [S] A case's inputs stay as cases are added

## Goal

Each case of a differential harness gets generated inputs of its own, seeded from the
case's name, so adding, removing, or reordering a case changes no other case's inputs, and
a new case fails only on its own inputs.

## Plan

Decided with the maintainer on 2026-11-02: m0, since every PR adding a case can now fail on
another case's inputs, costing a fixer run and another gate run.

`ts/tests/differential.ts` draws its random inputs from one seeded stream, and a harness
picks the case by leading bytes modulo its case count: `stock`'s first byte, `lang`'s first
two, and each of `task`'s steps' first. Adding a case shifts which case each random input
reaches, and the full-width values reach only the first eight ops. In
[#436](https://github.com/moq-dev/rust2/pull/436), adding a `stock` case sent the input
`421f00ff...` to `buf::write_all`, which hit the `rt.BytesMut` reserve refusal on a
zero-capacity `take` that no input had reached before. Generate each case's inputs from a
stream seeded by its name, behind the `ops` a harness exports, as `lang`'s caller already
exports one per case.

Public API: none.