Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit336e62b

Browse files
authored
fix: deflake BackedWriter tests (#19802)
1 parent6d39077 commit336e62b

File tree

1 file changed

+18
-22
lines changed

1 file changed

+18
-22
lines changed

‎agent/immortalstreams/backedpipe/backed_writer_test.go‎

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -177,18 +177,12 @@ func TestBackedWriter_BlockOnWriteFailure(t *testing.T) {
177177
// Expected - write is blocked
178178
}
179179

180-
// Should be disconnected
180+
// Wait for error event which implies writer was marked disconnected
181+
receivedErrorEvent:=testutil.RequireReceive(ctx,t,errChan)
182+
require.Contains(t,receivedErrorEvent.Err.Error(),"write failed")
183+
require.Equal(t,"writer",receivedErrorEvent.Component)
181184
require.False(t,bw.Connected())
182185

183-
// Error should be sent to error channel
184-
select {
185-
casereceivedErrorEvent:=<-errChan:
186-
require.Contains(t,receivedErrorEvent.Err.Error(),"write failed")
187-
require.Equal(t,"writer",receivedErrorEvent.Component)
188-
default:
189-
t.Fatal("Expected error to be sent to error channel")
190-
}
191-
192186
// Reconnect with working writer and verify write completes
193187
writer2:=newMockWriter()
194188
err=bw.Reconnect(0,writer2)// Replay from beginning
@@ -205,6 +199,7 @@ func TestBackedWriter_BlockOnWriteFailure(t *testing.T) {
205199

206200
funcTestBackedWriter_ReplayOnReconnect(t*testing.T) {
207201
t.Parallel()
202+
ctx:=testutil.Context(t,testutil.WaitShort)
208203

209204
errChan:=make(chan backedpipe.ErrorEvent,1)
210205
bw:=backedpipe.NewBackedWriter(backedpipe.DefaultBufferSize,errChan)
@@ -243,6 +238,10 @@ func TestBackedWriter_ReplayOnReconnect(t *testing.T) {
243238
// Expected - write is blocked
244239
}
245240

241+
// Wait for error event which implies writer was marked disconnected
242+
receivedErrorEvent:=testutil.RequireReceive(ctx,t,errChan)
243+
require.Contains(t,receivedErrorEvent.Err.Error(),"connection lost")
244+
require.Equal(t,"writer",receivedErrorEvent.Component)
246245
require.False(t,bw.Connected())
247246

248247
// Reconnect with new writer and request replay from beginning
@@ -479,18 +478,12 @@ func TestBackedWriter_BlockOnPartialWrite(t *testing.T) {
479478
// Expected - write is blocked
480479
}
481480

482-
// Should be disconnected
481+
// Wait for error event which implies writer was marked disconnected
482+
receivedErrorEvent:=testutil.RequireReceive(ctx,t,errChan)
483+
require.Contains(t,receivedErrorEvent.Err.Error(),"short write")
484+
require.Equal(t,"writer",receivedErrorEvent.Component)
483485
require.False(t,bw.Connected())
484486

485-
// Error should be sent to error channel
486-
select {
487-
casereceivedErrorEvent:=<-errChan:
488-
require.Contains(t,receivedErrorEvent.Err.Error(),"short write")
489-
require.Equal(t,"writer",receivedErrorEvent.Component)
490-
default:
491-
t.Fatal("Expected error to be sent to error channel")
492-
}
493-
494487
// Reconnect with working writer and verify write completes
495488
writer2:=newMockWriter()
496489
err:=bw.Reconnect(0,writer2)// Replay from beginning
@@ -605,7 +598,10 @@ func TestBackedWriter_WriteBlocksAfterDisconnection(t *testing.T) {
605598
// Expected - write is blocked
606599
}
607600

608-
// Should be disconnected
601+
// Wait for error event which implies writer was marked disconnected
602+
receivedErrorEvent:=testutil.RequireReceive(ctx,t,errChan)
603+
require.Contains(t,receivedErrorEvent.Err.Error(),"connection lost")
604+
require.Equal(t,"writer",receivedErrorEvent.Component)
609605
require.False(t,bw.Connected())
610606

611607
// Reconnect and verify write completes
@@ -910,7 +906,7 @@ func TestBackedWriter_MultipleWritesDuringReconnect(t *testing.T) {
910906
<-writesReadyTimer.C
911907

912908
// Start reconnection with controlled replay
913-
replayStarted:=make(chanstruct{})
909+
replayStarted:=make(chanstruct{},1)
914910
replayCanComplete:=make(chanstruct{})
915911
writer2:=&mockWriter{
916912
writeFunc:func(p []byte) (int,error) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp