Skip to content

Commit 5dc87d1

Browse files
committed
Testing: improve speedometer coverage
1 parent 65c0f29 commit 5dc87d1

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

Diff for: speedometer/speedometer_test.go

+20-2
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,8 @@ func (bw badWrites) Write(_ []byte) (int, error) {
479479
return 0, io.EOF
480480
}
481481

482+
func (bw badWrites) Close() error { return io.ErrNoProgress }
483+
482484
func TestImprobableEdgeCasesForCoverage(t *testing.T) {
483485
t.Parallel()
484486
sp, _ := NewSpeedometer(io.Discard)
@@ -499,8 +501,8 @@ func TestImprobableEdgeCasesForCoverage(t *testing.T) {
499501
if _, e := sp.Write([]byte("yeet")); !errors.Is(e, io.EOF) {
500502
t.Errorf("wrong error from underlying writer err passdown: %v", e)
501503
}
502-
if e := sp.Close(); e != nil {
503-
t.Fatal("close err not nil")
504+
if e := sp.Close(); e == nil {
505+
t.Fatal("should have received error when closing with bad writer")
504506
}
505507
if e := sp.Close(); !errors.Is(e, io.ErrClosedPipe) {
506508
t.Errorf("wrong error from already closed speedo: %v", e)
@@ -557,6 +559,9 @@ func (r reader) Read(p []byte) (int, error) {
557559

558560
func TestMiscellaneousBehaviorForCoverage(t *testing.T) {
559561
sp, err := NewSpeedometer(writeCloser{})
562+
if act, actErr := sp.chkIOType(ioReader); act != nil || actErr == nil {
563+
t.Fatal("should have received error when checking for reader on writecloser")
564+
}
560565
if err != nil {
561566
t.Fatal("unexpected error")
562567
}
@@ -570,6 +575,9 @@ func TestMiscellaneousBehaviorForCoverage(t *testing.T) {
570575
t.Fatal("unexpected nil closer")
571576
}
572577
sp, err = NewReadingSpeedometer(reader{})
578+
if act, actErr := sp.chkIOType(ioWriter); act != nil || actErr == nil {
579+
t.Fatal("should have received error when checking for writer on readcloser")
580+
}
573581
if err != nil {
574582
t.Fatal("unexpected error")
575583
}
@@ -597,6 +605,16 @@ func TestMiscellaneousBehaviorForCoverage(t *testing.T) {
597605
}
598606
}
599607

608+
func TestMustPanic(t *testing.T) {
609+
defer func() {
610+
if r := recover(); r == nil {
611+
t.Fatal("expected panic")
612+
}
613+
}()
614+
sp, _ := NewSpeedometer(writeCloser{})
615+
_, _ = sp.chkIOType(ioType(55))
616+
}
617+
600618
func measureRate(t *testing.T, received int64, duration time.Duration) float64 {
601619
t.Helper()
602620
return float64(received) / duration.Seconds()

0 commit comments

Comments
 (0)