From 91775be2b78a986fef9342385d36995c617c61c5 Mon Sep 17 00:00:00 2001 From: Caleb Allen Date: Fri, 24 Jul 2026 13:50:08 -0400 Subject: [PATCH] test(player): skip mid-stream silence in BufferedStreamer basic test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TestBufferedStreamer_BasicStream flaked under -race (got 1256/1512 vs 1000 expected). The streamer injects silence frames by design when its ring buffer momentarily underruns; under the race detector the consumer outran read-ahead and received mid-stream 256-sample silence frames. The collection loop only skipped leading silence, so those frames were counted as data. Skip all zero frames, matching the test's own drain loop — real samples always start at 1.0, so any zero is injected silence, never source data. Co-Authored-By: Claude Opus 4.8 --- backend/player/buffered_streamer_test.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/player/buffered_streamer_test.go b/backend/player/buffered_streamer_test.go index 96a1684..7fc8d5e 100644 --- a/backend/player/buffered_streamer_test.go +++ b/backend/player/buffered_streamer_test.go @@ -68,8 +68,11 @@ func TestBufferedStreamer_BasicStream(t *testing.T) { n, ok := bs.Stream(buf) for i := range n { - // Skip silence frames (buffer not yet filled). - if buf[i][0] == 0 && buf[i][1] == 0 && len(collected) == 0 { + // Skip silence frames the streamer injects whenever its + // ring buffer momentarily underruns (not just leading + // silence). Real samples always start at 1.0, so any zero + // frame is injected silence, never source data. + if buf[i][0] == 0 && buf[i][1] == 0 { continue }