Repository navigation
[TST-E7] test: SDK test helpers and fixtures live in the slice that uses them - #402
Merged
Merged
Conversation
github-merge-queue
Bot
removed this pull request from the merge queue due to a conflict with the base branch
Oct 16, 2026
A helper or fixture that one slice uses moves into that slice's Support/ or Fixtures/ folder; one that several slices use stays at the project root. Embedded fixtures keep their old resource names through explicit LogicalName metadata, and the two upstream oracle scripts follow their fixture folders. Only namespaces, the imports that follow, item metadata, editorconfig section paths, guard and ledger paths, and path relays change. Gate and PathCommandShim, whose only cross-slice mentions were comments, go to Transport and the Launcher.
The moved helpers' consumers import their slice's Support namespace, so using-header pairs re-pair. Each added fingerprint is a header clone; the ignore-using change removes them.
Blind-Striker
force-pushed
the
test/tst-e7-3a-sdk-slices
branch
from
October 16, 2026 22:45
137c605 to
b960774
Compare
This was referenced Oct 16, 2026
[TST-E7] test: Tools test helpers, fixtures and mirrored tests live in the slice that uses them
#406
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Description
What does this PR do?
It moves
OpenCode.Sdk.Testshelpers and embedded fixtures out of the project root and into the slice whose code uses them, astesting-style.md§1 already says. It is moves only: no test body, assertion or helper behaviour changes.cde7e254by its code consumers only. A file stays in rootSupport/orFixtures/when more than one slice uses it.EmbeddedResourcekeeps its oldLogicalName(OpenCode.Sdk.Tests.Fixtures.<old path with dots>) and is included exactly once, so no loader changes. The two oracle scripts (tools/oracles/first-match-union.ts,wildcard-path.ts) read their fixtures from disk and now point at the new folders.usingdirectives of moved files and their consumers;SdkTestSupport.HangGuardqualification;.editorconfigsection paths;testing-style.md§3 fixtures sentence, which now names the slice'sFixtures/folder, or the root one for shared fixtures.PathCommandShim→Hosting/Launcher/Support/: its only "Harness consumer" was a doc comment.BlockingContentandGatestay in the rootSupport/. [FRZ-H2b] per-call request options on the stream and traversal doors; the stream-failure Tag on the marker #398 added a Sessions consumer ofBlockingContent(Sessions/SessionClientContractTests.cs:60). That makes it cross-slice, andGateis reached from both slices through it.InterruptedBufferingContentis still Transport-only and moves.cde7e254). Rename detection carried [FRZ-H2b] per-call request options on the stream and traversal doors; the stream-failure Tag on the marker #398's edits onto the three moved helpers it touched (OwnedToolScenario,SessionLogTranscript,SimulatedSessionTurn); against [FRZ-H2b] per-call request options on the stream and traversal doors; the stream-failure Tag on the marker #398's versions they differ only in namespace andusinglines. The nine overlapping consumer files differ from master only inusinglines. One import hunk from [RT-392] perf: pool downlevel response bodies between 1 and 16 MiB #397 was resolved by hand earlier.Part of TST-E7 (step 3a, the SDK half; the Tools half follows as a separate PR).
🔄 Type of Change
🎯 Protocol & API Surface
external/,spec/orsrc/was touched🧪 Testing
Clone baselines. The second commit carries only the tests baseline's own delta: 16 using-header fingerprints added and 4 removed, re-paired because the moved files'
usingblocks now pair differently. One fingerprint (0bb96000…) has count 2. No method-body pair was baselined. The delta is checked against the live clone set: the baseline regenerated from an empty fingerprint set at this head has 811 fingerprints for 823 clones. Every added fingerprint is in it with its exact count, and no removed one is.Master's other stale entries are left for TST-E0c, which makes stale entries fail the gate (#384). The exception is
src.baseline.json's694a3508…: the moves commit removes it. It is stale on master (this PR touches nothing undersrc/), and TST-E0c removes the same entry.Review. A fresh read-only review re-checked:
LogicalName;.editorconfigsections;Its §3 note and its
PathCommandShimdefect are fixed in this head. ItsGatefinding (Transport-only atd13d9833) no longer holds after #398, soGatestays at root, as above.Implementer's run. The implementer's whole-project run showed 38
ServiceFixturefailures. They came from a narrow build that skipped packaging, not from a defect; the solution-build run below passes them.✅ Completion Gate
Local check (
quality-gates.md) on headb960774b, basecde7e254, idle host. Every step's own exit code was read:dotnet build --configuration Release: 0 warnings, 0 errorsdotnet format whitespace/dotnet format style --severity warn: no changesverify-clones: passed, 0 newOpenCode.Sdk.Tests(all but ServiceElection/NativeAot): 8179, 0 failedOpenCode.Sdk.Tools.Tests(all but NativeAot): 1794, 0 failedThe host runs Bun 1.4.3, a maintainer-named off-pin host (
OPENCODE_SDK_TESTS_BUN_MISMATCH=allow); the pin is 1.4.2.✅ Code Quality Checklist