Repository navigation
tests: the last Mac assumptions in cellstore's socket fixtures and remote's stamp answers - #2047
Merged
Merged
Conversation
AbirAbbas
added a commit
that referenced
this pull request
Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AbirAbbas
force-pushed
the
test/mac-test-assumptions
branch
from
October 29, 2026 23:18
9175b91 to
0ab9cc1
Compare
AbirAbbas
added a commit
that referenced
this pull request
Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Closing unmerged: the Mac push stopped early to save usage. What this fixes and what is left is tracked in #2061. The branch |
Twelve tests assumed Linux and failed on a Mac with nothing wrong in the
product:
- BSD mktemp ignores TMPDIR without a template, so the five scratch-routing
probes now name "${TMPDIR:-/tmp}/probe.XXXXXX" (session, executor);
- the three cellstore socket fixtures resolve /tmp to /private/tmp, clean
the temp prefix and keep a short base, as the product's socket rules do;
- the release-surface probe guards an empty array, which bash 3.2 calls
unset under nounset (the workflow itself runs on Linux bash);
- the teams doors' unchanged answer is asserted to carry exactly the stamp
and the flag, since a Mac's device and inode numbers make the stamp longer;
- tui3's Memory switch is expected in the app's own chord spelling, which
is opt+u on a Mac.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AbirAbbas
force-pushed
the
test/mac-test-assumptions
branch
from
November 2, 2026 23:38
0ab9cc1 to
a8360ac
Compare
AbirAbbas
marked this pull request as ready for review
November 3, 2026 00:27
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.
Depends on #2033. This branch sits on #2033's four commits, rebased onto app/v3
bd98788a9. The commits beforetests: the last test-only Mac assumptions (T3-T7)are #2033's and drop out when #2033 lands; this PR then rebases onto app/v3. Its own change is that one commit: 10*_test.gofiles, nothing else.What and why
On a Mac (macOS 15.6, arm64, Apple's
/bin/bash3.2, BSD userland), twelve tests fail with nothing wrong in the product: they assume Linux. With #2033 (canonical temporary roots) and this PR, those twelve pass on the Mac, so the Macgo testgate is left with only the failures that have their own owners (below).TestOwnershipChatRoutesScratchWithoutMovingTheProject,TestOwnedBeltWorkerUsesRealScratchWithoutChangingHome,TestExplicitInPlaceWorkerRoutesScratchWithoutOwningTheProject,TestLegacyOwnedWorkerUsesItsAdmittedRuntime; executorTestWorkspaceEnvironmentRoutesRealTemporaryFilesThroughBothRunnerDoorsmktempwithout a template ignoresTMPDIR(it asksconfstr(_CS_DARWIN_USER_TEMP_DIR))"${TMPDIR:-/tmp}/probe.XXXXXX"; every placement, ownership and file-existence assertion staysTestR9UnixShortSocketOrder,TestR9UnixShortSocketRejectsPreclaimedDirectory,TestSocketIsKeyedToTheEngineBinary/tmpis a link to/private/tmp, and the product names a home by its physical path;os.TempDir()may end in/; the long MacTMPDIRpasses the 104-bytesun_pathand selects the hashed fallbackTestTheReleaseSurfaceTestSurvivesEveryLedgerStateprintfprobe expands an empty array, which bash 3.2 calls unset underset -urelease.yml(run on ubuntu-latest) is unchangedTestTheTeamsDoorsCrossFromTheEnginesProfilesame:true(and the quiet Traffic answer exactly the stamp)TestEveryEmptyPlaceDrawsItsHeadingAndOneWhisper,TestEveryPlaceWhisperWrapsLikeHomesAndIsNeverCutopt+uon a Mac, by designA macOS limit worth knowing (not changed here): the T3 tests now prove that a tool which honours
TMPDIRwrites into chat scratch, which holds on both systems. A tool calling baremktempon a Mac still writes to the per-user folder instead, because BSDmktempignoresTMPDIR. The product sets the environment; it doesn't contain the filesystem (internal/executor/environment.go). If ordinary temporary tools are expected to land in chat scratch on a Mac, that is a product question for its own issue, not a test fix.Before / after (macOS, the six packages one by one)
Each package run on its own (
go test -count=1 -p 2), on app/v3bd98788a9+ #2033 (before) and with this commit (after):TestAShellCallTellsTheObserverWhatItLeftRunning,TestLocalRecordsAListeningServiceFullyTestC16PromotionTriggerAndCutoff,TestPromotionWorkflowExplainsItsSafetyLawsTestRemovedComputerReopensWithTheSameProjectLabel/project: caused by #2033, fixed thereAll 12 tests go from fail to pass. Four session tests failed after but not before:
TestAKeyedRunRowNoteWhoseCommitFailsIsUnknown,TestAPersonNoteKeepsOnlyValidClientIDsAcrossBothStores,TestARefusedRunRowNoteStoresNoKey,TestARunRowNoteKeepsItsClientIDInTheStoreAndTheReadStepJoinsOnTheNoteID. Each says "TempDir RemoveAll cleanup: … directory not empty", and rerun ×5 they fail on the base too (2/5 each) and here (1–4/5). That's a pre-existing Mac flake in files this PR doesn't touch.TestTheSourceHoldsEveryRowTheAppListsis the same class (3/5 on the base).Full
go test -count=1 -p 6 -timeout 15m ./...on the Mac (app/v3 + #2033, before vs after)Queued in the gate lane (base, then this branch). Compared by failing test name when it lands.
Scope
Only
*_test.goin internal/session, executor, cellstore, release, remote and tui3. No product file, workflow, Makefile orci-full.ymlchange; noGOTMPDIR.Review
Independent Codex review: clean (no blocker, major or minor beyond the T3 disclosure above, which this body makes). One nit kept: the T6 assertion compares the exact marshalled frame. Go marshals a struct's fields in a fixed order, and a new field in the "unchanged" answer should make someone revisit that contract.
🤖 Generated with Claude Code