7
7
"testing"
8
8
"time"
9
9
10
- "github.com/stretchr/testify/assert"
11
10
"github.com/stretchr/testify/require"
12
11
"golang.org/x/xerrors"
13
12
@@ -59,9 +58,9 @@ func TestBackedReader_NewBackedReader(t *testing.T) {
59
58
t .Parallel ()
60
59
61
60
br := backedpipe .NewBackedReader ()
62
- assert .NotNil (t , br )
63
- assert .Equal (t , uint64 (0 ), br .SequenceNum ())
64
- assert .False (t , br .Connected ())
61
+ require .NotNil (t , br )
62
+ require .Equal (t , uint64 (0 ), br .SequenceNum ())
63
+ require .False (t , br .Connected ())
65
64
}
66
65
67
66
func TestBackedReader_BasicReadOperation (t * testing.T ) {
@@ -79,7 +78,7 @@ func TestBackedReader_BasicReadOperation(t *testing.T) {
79
78
80
79
// Get sequence number from reader
81
80
seq := testutil .RequireReceive (ctx , t , seqNum )
82
- assert .Equal (t , uint64 (0 ), seq )
81
+ require .Equal (t , uint64 (0 ), seq )
83
82
84
83
// Send new reader
85
84
testutil .RequireSend (ctx , t , newR , io .Reader (reader ))
@@ -88,16 +87,16 @@ func TestBackedReader_BasicReadOperation(t *testing.T) {
88
87
buf := make ([]byte , 5 )
89
88
n , err := br .Read (buf )
90
89
require .NoError (t , err )
91
- assert .Equal (t , 5 , n )
92
- assert .Equal (t , "hello" , string (buf ))
93
- assert .Equal (t , uint64 (5 ), br .SequenceNum ())
90
+ require .Equal (t , 5 , n )
91
+ require .Equal (t , "hello" , string (buf ))
92
+ require .Equal (t , uint64 (5 ), br .SequenceNum ())
94
93
95
94
// Read more data
96
95
n , err = br .Read (buf )
97
96
require .NoError (t , err )
98
- assert .Equal (t , 5 , n )
99
- assert .Equal (t , " worl" , string (buf ))
100
- assert .Equal (t , uint64 (10 ), br .SequenceNum ())
97
+ require .Equal (t , 5 , n )
98
+ require .Equal (t , " worl" , string (buf ))
99
+ require .Equal (t , uint64 (10 ), br .SequenceNum ())
101
100
}
102
101
103
102
func TestBackedReader_ReadBlocksWhenDisconnected (t * testing.T ) {
@@ -143,8 +142,8 @@ func TestBackedReader_ReadBlocksWhenDisconnected(t *testing.T) {
143
142
144
143
// Wait for read to complete
145
144
testutil .TryReceive (ctx , t , readDone )
146
- assert .NoError (t , readErr )
147
- assert .Equal (t , "test" , string (readBuf ))
145
+ require .NoError (t , readErr )
146
+ require .Equal (t , "test" , string (readBuf ))
148
147
}
149
148
150
149
func TestBackedReader_ReconnectionAfterFailure (t * testing.T ) {
@@ -168,8 +167,8 @@ func TestBackedReader_ReconnectionAfterFailure(t *testing.T) {
168
167
buf := make ([]byte , 5 )
169
168
n , err := br .Read (buf )
170
169
require .NoError (t , err )
171
- assert .Equal (t , "first" , string (buf [:n ]))
172
- assert .Equal (t , uint64 (5 ), br .SequenceNum ())
170
+ require .Equal (t , "first" , string (buf [:n ]))
171
+ require .Equal (t , uint64 (5 ), br .SequenceNum ())
173
172
174
173
// Set up error callback to verify error notification
175
174
errorReceived := make (chan error , 1 )
@@ -189,8 +188,8 @@ func TestBackedReader_ReconnectionAfterFailure(t *testing.T) {
189
188
190
189
// Wait for the error to be reported via callback
191
190
receivedErr := testutil .RequireReceive (ctx , t , errorReceived )
192
- assert .Error (t , receivedErr )
193
- assert .Contains (t , receivedErr .Error (), "connection lost" )
191
+ require .Error (t , receivedErr )
192
+ require .Contains (t , receivedErr .Error (), "connection lost" )
194
193
195
194
// Verify read is still blocked
196
195
select {
@@ -201,7 +200,7 @@ func TestBackedReader_ReconnectionAfterFailure(t *testing.T) {
201
200
}
202
201
203
202
// Verify disconnection
204
- assert .False (t , br .Connected ())
203
+ require .False (t , br .Connected ())
205
204
206
205
// Reconnect with new reader
207
206
reader2 := newMockReader ("second" )
@@ -212,12 +211,12 @@ func TestBackedReader_ReconnectionAfterFailure(t *testing.T) {
212
211
213
212
// Get sequence number and send new reader
214
213
seq := testutil .RequireReceive (ctx , t , seqNum2 )
215
- assert .Equal (t , uint64 (5 ), seq ) // Should return current sequence number
214
+ require .Equal (t , uint64 (5 ), seq ) // Should return current sequence number
216
215
testutil .RequireSend (ctx , t , newR2 , io .Reader (reader2 ))
217
216
218
217
// Wait for read to unblock and succeed with new data
219
218
readErr := testutil .RequireReceive (ctx , t , readDone )
220
- assert .NoError (t , readErr ) // Should succeed with new reader
219
+ require .NoError (t , readErr ) // Should succeed with new reader
221
220
}
222
221
223
222
func TestBackedReader_Close (t * testing.T ) {
@@ -241,20 +240,20 @@ func TestBackedReader_Close(t *testing.T) {
241
240
buf := make ([]byte , 10 )
242
241
n , err := br .Read (buf )
243
242
require .NoError (t , err )
244
- assert .Equal (t , 4 , n ) // "test" is 4 bytes
243
+ require .Equal (t , 4 , n ) // "test" is 4 bytes
245
244
246
245
// Close the reader before EOF triggers reconnection
247
246
err = br .Close ()
248
247
require .NoError (t , err )
249
248
250
249
// After close, reads should return EOF
251
250
n , err = br .Read (buf )
252
- assert .Equal (t , 0 , n )
253
- assert .Equal (t , io .EOF , err )
251
+ require .Equal (t , 0 , n )
252
+ require .Equal (t , io .EOF , err )
254
253
255
254
// Subsequent reads should return EOF
256
255
_ , err = br .Read (buf )
257
- assert .Equal (t , io .EOF , err )
256
+ require .Equal (t , io .EOF , err )
258
257
}
259
258
260
259
func TestBackedReader_CloseIdempotent (t * testing.T ) {
@@ -263,11 +262,11 @@ func TestBackedReader_CloseIdempotent(t *testing.T) {
263
262
br := backedpipe .NewBackedReader ()
264
263
265
264
err := br .Close ()
266
- assert .NoError (t , err )
265
+ require .NoError (t , err )
267
266
268
267
// Second close should be no-op
269
268
err = br .Close ()
270
- assert .NoError (t , err )
269
+ require .NoError (t , err )
271
270
}
272
271
273
272
func TestBackedReader_ReconnectAfterClose (t * testing.T ) {
@@ -286,7 +285,7 @@ func TestBackedReader_ReconnectAfterClose(t *testing.T) {
286
285
287
286
// Should get 0 sequence number for closed reader
288
287
seq := testutil .TryReceive (ctx , t , seqNum )
289
- assert .Equal (t , uint64 (0 ), seq )
288
+ require .Equal (t , uint64 (0 ), seq )
290
289
}
291
290
292
291
// Helper function to reconnect a reader using channels
@@ -315,18 +314,18 @@ func TestBackedReader_SequenceNumberTracking(t *testing.T) {
315
314
316
315
n , err := br .Read (buf )
317
316
require .NoError (t , err )
318
- assert .Equal (t , 3 , n )
319
- assert .Equal (t , uint64 (3 ), br .SequenceNum ())
317
+ require .Equal (t , 3 , n )
318
+ require .Equal (t , uint64 (3 ), br .SequenceNum ())
320
319
321
320
n , err = br .Read (buf )
322
321
require .NoError (t , err )
323
- assert .Equal (t , 3 , n )
324
- assert .Equal (t , uint64 (6 ), br .SequenceNum ())
322
+ require .Equal (t , 3 , n )
323
+ require .Equal (t , uint64 (6 ), br .SequenceNum ())
325
324
326
325
n , err = br .Read (buf )
327
326
require .NoError (t , err )
328
- assert .Equal (t , 3 , n )
329
- assert .Equal (t , uint64 (9 ), br .SequenceNum ())
327
+ require .Equal (t , 3 , n )
328
+ require .Equal (t , uint64 (9 ), br .SequenceNum ())
330
329
}
331
330
332
331
func TestBackedReader_EOFHandling (t * testing.T ) {
@@ -348,8 +347,8 @@ func TestBackedReader_EOFHandling(t *testing.T) {
348
347
buf := make ([]byte , 10 )
349
348
n , err := br .Read (buf )
350
349
require .NoError (t , err )
351
- assert .Equal (t , 4 , n )
352
- assert .Equal (t , "test" , string (buf [:n ]))
350
+ require .Equal (t , 4 , n )
351
+ require .Equal (t , "test" , string (buf [:n ]))
353
352
354
353
// Next read should encounter EOF, which triggers disconnection
355
354
// The read should block waiting for reconnection
@@ -364,10 +363,10 @@ func TestBackedReader_EOFHandling(t *testing.T) {
364
363
365
364
// Wait for EOF to be reported via error callback
366
365
receivedErr := testutil .RequireReceive (ctx , t , errorReceived )
367
- assert .Equal (t , io .EOF , receivedErr )
366
+ require .Equal (t , io .EOF , receivedErr )
368
367
369
368
// Reader should be disconnected after EOF
370
- assert .False (t , br .Connected ())
369
+ require .False (t , br .Connected ())
371
370
372
371
// Read should still be blocked
373
372
select {
@@ -384,8 +383,8 @@ func TestBackedReader_EOFHandling(t *testing.T) {
384
383
// Wait for the blocked read to complete with new data
385
384
testutil .TryReceive (ctx , t , readDone )
386
385
require .NoError (t , readErr )
387
- assert .Equal (t , 4 , readN )
388
- assert .Equal (t , "more" , string (buf [:readN ]))
386
+ require .Equal (t , 4 , readN )
387
+ require .Equal (t , "more" , string (buf [:readN ]))
389
388
}
390
389
391
390
func BenchmarkBackedReader_Read (b * testing.B ) {
@@ -438,11 +437,11 @@ func TestBackedReader_PartialReads(t *testing.T) {
438
437
for i := 0 ; i < 5 ; i ++ {
439
438
n , err := br .Read (buf )
440
439
require .NoError (t , err )
441
- assert .Equal (t , 1 , n )
442
- assert .Equal (t , byte ('A' ), buf [0 ])
440
+ require .Equal (t , 1 , n )
441
+ require .Equal (t , byte ('A' ), buf [0 ])
443
442
}
444
443
445
- assert .Equal (t , uint64 (5 ), br .SequenceNum ())
444
+ require .Equal (t , uint64 (5 ), br .SequenceNum ())
446
445
}
447
446
448
447
func TestBackedReader_CloseWhileBlockedOnUnderlyingReader (t * testing.T ) {
@@ -525,14 +524,14 @@ func TestBackedReader_CloseWhileBlockedOnUnderlyingReader(t *testing.T) {
525
524
526
525
// The read should return EOF because Close() was called while it was blocked,
527
526
// even though the underlying reader returned an error
528
- assert .Equal (t , 0 , readN )
529
- assert .Equal (t , io .EOF , readErr )
527
+ require .Equal (t , 0 , readN )
528
+ require .Equal (t , io .EOF , readErr )
530
529
531
530
// Subsequent reads should return EOF since the reader is now closed
532
531
buf := make ([]byte , 10 )
533
532
n , err := br .Read (buf )
534
- assert .Equal (t , 0 , n )
535
- assert .Equal (t , io .EOF , err )
533
+ require .Equal (t , 0 , n )
534
+ require .Equal (t , io .EOF , err )
536
535
}
537
536
538
537
func TestBackedReader_CloseWhileBlockedWaitingForReconnect (t * testing.T ) {
@@ -556,7 +555,7 @@ func TestBackedReader_CloseWhileBlockedWaitingForReconnect(t *testing.T) {
556
555
buf := make ([]byte , 10 )
557
556
n , err := br .Read (buf )
558
557
require .NoError (t , err )
559
- assert .Equal (t , "initial" , string (buf [:n ]))
558
+ require .Equal (t , "initial" , string (buf [:n ]))
560
559
561
560
// Set up error callback to track connection failure
562
561
errorReceived := make (chan error , 1 )
@@ -579,8 +578,8 @@ func TestBackedReader_CloseWhileBlockedWaitingForReconnect(t *testing.T) {
579
578
580
579
// Wait for the error to be reported (indicating disconnection)
581
580
receivedErr := testutil .RequireReceive (ctx , t , errorReceived )
582
- assert .Error (t , receivedErr )
583
- assert .Contains (t , receivedErr .Error (), "connection lost" )
581
+ require .Error (t , receivedErr )
582
+ require .Contains (t , receivedErr .Error (), "connection lost" )
584
583
585
584
// Verify read is blocked waiting for reconnection
586
585
select {
@@ -591,14 +590,14 @@ func TestBackedReader_CloseWhileBlockedWaitingForReconnect(t *testing.T) {
591
590
}
592
591
593
592
// Verify reader is disconnected
594
- assert .False (t , br .Connected ())
593
+ require .False (t , br .Connected ())
595
594
596
595
// Close the BackedReader while read is blocked waiting for reconnection
597
596
err = br .Close ()
598
597
require .NoError (t , err )
599
598
600
599
// The read should unblock and return EOF
601
600
testutil .TryReceive (ctx , t , readDone )
602
- assert .Equal (t , 0 , readN )
603
- assert .Equal (t , io .EOF , readErr )
601
+ require .Equal (t , 0 , readN )
602
+ require .Equal (t , io .EOF , readErr )
604
603
}
0 commit comments