From 2bf700eec2ffe3b3f4bec909ec72a6013f7dca4b Mon Sep 17 00:00:00 2001 From: vikingowl <26+vikingowl@noreply.somegit.dev> Date: Tue, 19 May 2026 16:19:40 +0200 Subject: [PATCH] test(elf): make mockProvider.calls atomic Race detector flagged concurrent access to mockProvider.calls during TestManager_SpawnAndList and TestManager_WaitAll, where multiple spawned engines share the same mock. Switch to atomic.Int64. Closes audit finding L1. `go test -race ./...` is now fully green. --- internal/elf/elf_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/elf/elf_test.go b/internal/elf/elf_test.go index 1b357c2..4b058c0 100644 --- a/internal/elf/elf_test.go +++ b/internal/elf/elf_test.go @@ -3,6 +3,7 @@ package elf import ( "context" "fmt" + "sync/atomic" "testing" "time" @@ -18,7 +19,7 @@ import ( type mockProvider struct { name string - calls int + calls atomic.Int64 streams []stream.Stream } @@ -26,12 +27,11 @@ func (m *mockProvider) Name() string { return m.name } func (m *mockProvider) DefaultModel() string { return "mock" } func (m *mockProvider) Models(_ context.Context) ([]provider.ModelInfo, error) { return nil, nil } func (m *mockProvider) Stream(_ context.Context, _ provider.Request) (stream.Stream, error) { - if m.calls >= len(m.streams) { + idx := m.calls.Add(1) - 1 + if int(idx) >= len(m.streams) { return nil, fmt.Errorf("no more streams") } - s := m.streams[m.calls] - m.calls++ - return s, nil + return m.streams[idx], nil } type eventStream struct {