@@ -27,6 +27,8 @@ import (
2727 "github.com/stretchr/testify/require"
2828)
2929
30+ const embeddingTestTimeout = 10 * time .Second
31+
3032type staticEmbedder struct {
3133 embeddings [][]float32
3234 err error
@@ -197,13 +199,8 @@ func TestEmbedFnSharedCallCancellation(t *testing.T) {
197199 result2 <- result {embedding : embedding , err : err }
198200 }()
199201 require .Eventually (t , func () bool {
200- embedFn .mu .Lock ()
201- defer embedFn .mu .Unlock ()
202- for _ , call := range embedFn .inFlight {
203- return call .waiters == 2
204- }
205- return false
206- }, time .Second , 10 * time .Millisecond )
202+ return hasSingleInFlightCallWithWaiters (embedFn , 2 )
203+ }, embeddingTestTimeout , 10 * time .Millisecond )
207204
208205 firstCause := errors .New ("first caller canceled" )
209206 cancel1 (firstCause )
@@ -245,21 +242,16 @@ func TestEmbedFnCancelsProviderAfterAllCallersCancel(t *testing.T) {
245242 err2 <- err
246243 }()
247244 require .Eventually (t , func () bool {
248- embedFn .mu .Lock ()
249- defer embedFn .mu .Unlock ()
250- for _ , call := range embedFn .inFlight {
251- return call .waiters == 2
252- }
253- return false
254- }, time .Second , 10 * time .Millisecond )
245+ return hasSingleInFlightCallWithWaiters (embedFn , 2 )
246+ }, embeddingTestTimeout , 10 * time .Millisecond )
255247
256248 cancel1 ()
257249 cancel2 ()
258250 require .ErrorIs (t , receiveFromChannel (t , err1 , "first caller cancellation" ), context .Canceled )
259251 require .ErrorIs (t , receiveFromChannel (t , err2 , "second caller cancellation" ), context .Canceled )
260252 select {
261253 case <- provider .canceled :
262- case <- time .After (time . Second ):
254+ case <- time .After (embeddingTestTimeout ):
263255 t .Fatal ("provider request was not canceled after all callers canceled" )
264256 }
265257}
@@ -278,12 +270,24 @@ func waitForChannel(t *testing.T, ch <-chan struct{}, description string) {
278270 receiveFromChannel (t , ch , description )
279271}
280272
273+ func hasSingleInFlightCallWithWaiters (embedFn * EmbedFn , waiters int ) bool {
274+ embedFn .mu .Lock ()
275+ defer embedFn .mu .Unlock ()
276+ if len (embedFn .inFlight ) != 1 {
277+ return false
278+ }
279+ for _ , call := range embedFn .inFlight {
280+ return call .waiters == waiters
281+ }
282+ return false
283+ }
284+
281285func receiveFromChannel [T any ](t * testing.T , ch <- chan T , description string ) T {
282286 t .Helper ()
283287 select {
284288 case value := <- ch :
285289 return value
286- case <- time .After (time . Second ):
290+ case <- time .After (embeddingTestTimeout ):
287291 t .Fatalf ("timed out waiting for %s" , description )
288292 var zero T
289293 return zero
0 commit comments