Skip to content

Commit da8a6a9

Browse files
IAM-marcoclaude
andcommitted
docs: note the 7 expected Spanner emulator failures on Apple Silicon
The arm64 emulator build does not round commit timestamps the way the amd64 build CI runs does, so six stmttest subtests and TestJSONSchemaStatements_CRUD see tens of microseconds of drift on a created_at read back after a second statement. Deterministic, unrelated to parallelism, and green in CI. Without this note an arm64 contributor sees 7 red tests with nothing saying they are expected, which teaches them to distrust local Spanner runs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent d4cc967 commit da8a6a9

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,15 @@ off the error, so Spanner's `ReadWriteTransaction` stopped recognising it as
345345
retryable. See the error-wrapping rules in
346346
[internal/storage/v2/AGENTS.md](internal/storage/v2/AGENTS.md) and #788.
347347

348+
**On Apple Silicon, expect 7 pre-existing failures.** `emulator:latest` has a
349+
native arm64 build, and it does not round commit timestamps the way the amd64
350+
build CI runs does. Six subtests in `internal/storage/v2/stmttest` and
351+
`TestJSONSchemaStatements_CRUD` compare a `created_at` read back after a second
352+
statement and see tens of microseconds of drift. They are deterministic, they
353+
are not caused by parallelism, and they pass in CI. Ignore them, or run the
354+
emulator under `linux/amd64` emulation if you want a clean local run. If you
355+
touch timestamp handling, verify on CI rather than trusting a local pass.
356+
348357
To run against a Spanner you manage instead of the emulator testcontainer, set
349358
`ZITADEL_TEST_SPANNER_URL` to its DSN.
350359

0 commit comments

Comments
 (0)