Skip to content

Commit 1dbcb50

Browse files
committed
Update lint rules, force testify/assert for tests
Use testify's assert package instead of the standard library's testing package.
1 parent cbc578b commit 1dbcb50

13 files changed

+127
-159
lines changed

.golangci.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@ linters-settings:
1919
recommendations:
2020
- errors
2121
forbidigo:
22+
analyze-types: true
2223
forbid:
2324
- ^fmt.Print(f|ln)?$
2425
- ^log.(Panic|Fatal|Print)(f|ln)?$
2526
- ^os.Exit$
2627
- ^panic$
2728
- ^print(ln)?$
29+
- p: ^testing.T.(Error|Errorf|Fatal|Fatalf|Fail|FailNow)$
30+
pkg: ^testing$
31+
msg: "use testify/assert instead"
2832
varnamelen:
2933
max-distance: 12
3034
min-name-length: 2
@@ -127,14 +131,15 @@ issues:
127131
exclude-dirs-use-default: false
128132
exclude-rules:
129133
# Allow complex tests and examples, better to be self contained
130-
- path: (examples|main\.go|_test\.go)
134+
- path: (examples|main\.go)
131135
linters:
136+
- gocognit
132137
- forbidigo
138+
- path: _test\.go
139+
linters:
133140
- gocognit
134141

135142
# Allow forbidden identifiers in CLI commands
136143
- path: cmd
137144
linters:
138145
- forbidigo
139-
max-issues-per-linter: 0
140-
max-same-issues: 0

errors_test.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package interceptor
66
import (
77
"errors"
88
"testing"
9+
10+
"github.com/stretchr/testify/assert"
911
)
1012

1113
func TestMultiError(t *testing.T) {
@@ -25,20 +27,13 @@ func TestMultiError(t *testing.T) {
2527
})
2628
str := "err1\nerr2\nerr3"
2729

28-
if errs.Error() != str {
29-
t.Errorf("String representation doesn't match, expected: %s, got: %s", errs.Error(), str)
30-
}
30+
assert.Equal(t, str, errs.Error(), "String representation doesn't match")
3131

3232
errIs, ok := errs.(multiError) //nolint
33-
if !ok {
34-
t.Fatal("FlattenErrs returns non-multiError")
35-
}
33+
assert.True(t, ok, "FlattenErrs returns non-multiError")
34+
3635
for i := 0; i < 3; i++ {
37-
if !errIs.Is(rawErrs[i]) {
38-
t.Errorf("'%+v' should contains '%v'", errs, rawErrs[i])
39-
}
40-
}
41-
if errIs.Is(rawErrs[3]) {
42-
t.Errorf("'%+v' should not contains '%v'", errs, rawErrs[3])
36+
assert.True(t, errIs.Is(rawErrs[i]), "Should contain error %d", i)
4337
}
38+
assert.False(t, errIs.Is(rawErrs[3]), "Should not contain error %d", 3)
4439
}

internal/rtpbuffer/rtpbuffer_test.go

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"testing"
88

99
"github.com/pion/rtp"
10+
"github.com/stretchr/testify/assert"
1011
"github.com/stretchr/testify/require"
1112
)
1213

@@ -35,14 +36,8 @@ func TestRTPBuffer(t *testing.T) {
3536
for _, n := range nums {
3637
seq := start + n
3738
packet := sb.Get(seq)
38-
if packet == nil {
39-
t.Errorf("packet not found: %d", seq)
40-
41-
continue
42-
}
43-
if packet.Header().SequenceNumber != seq {
44-
t.Errorf("packet for %d returned with incorrect SequenceNumber: %d", seq, packet.Header().SequenceNumber)
45-
}
39+
assert.NotNil(t, packet, "packet not found: %d", seq)
40+
assert.Equal(t, seq, packet.Header().SequenceNumber, "packet for %d returned with incorrect SequenceNumber", seq)
4641
packet.Release()
4742
}
4843
}
@@ -51,9 +46,7 @@ func TestRTPBuffer(t *testing.T) {
5146
for _, n := range nums {
5247
seq := start + n
5348
packet := sb.Get(seq)
54-
if packet != nil {
55-
t.Errorf("packet found for %d: %d", seq, packet.Header().SequenceNumber)
56-
}
49+
assert.Nil(t, packet, "packet found for %d", seq)
5750
}
5851
}
5952

@@ -99,17 +92,14 @@ func TestRTPBuffer_WithRTX(t *testing.T) {
9992
for _, n := range nums {
10093
seq := start + n
10194
packet := sb.Get(seq)
102-
if packet == nil {
103-
t.Errorf("packet not found: %d", seq)
104-
105-
continue
106-
}
107-
if packet.Header().SSRC != 1 && packet.Header().PayloadType != 1 {
108-
t.Errorf(
109-
"packet for %d returned with incorrect SSRC : %d and PayloadType: %d",
110-
seq, packet.Header().SSRC, packet.Header().PayloadType,
111-
)
112-
}
95+
assert.NotNil(t, packet, "packet not found: %d", seq)
96+
97+
assert.True(
98+
t,
99+
packet.Header().SSRC == 1 && packet.Header().PayloadType == 1,
100+
"packet for %d returned with incorrect SSRC : %d and PayloadType: %d",
101+
seq, packet.Header().SSRC, packet.Header().PayloadType,
102+
)
113103
packet.Release()
114104
}
115105
}
@@ -118,9 +108,7 @@ func TestRTPBuffer_WithRTX(t *testing.T) {
118108
for _, n := range nums {
119109
seq := start + n
120110
packet := sb.Get(seq)
121-
if packet != nil {
122-
t.Errorf("packet found for %d: %d", seq, packet.Header().SequenceNumber)
123-
}
111+
assert.Nil(t, packet, "packet found for %d", seq)
124112
}
125113
}
126114

internal/test/mock_stream_test.go

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ func TestMockStream(t *testing.T) {
2222
select {
2323
case <-mockStream.WrittenRTCP():
2424
case <-time.After(10 * time.Millisecond):
25-
t.Error("rtcp packet written but not found")
25+
assert.Fail(t, "rtcp packet written but not found")
2626
}
2727
select {
2828
case <-mockStream.WrittenRTCP():
29-
t.Error("single rtcp packet written, but multiple found")
29+
assert.Fail(t, "single rtcp packet written, but multiple found")
3030
case <-time.After(10 * time.Millisecond):
3131
}
3232

@@ -35,41 +35,37 @@ func TestMockStream(t *testing.T) {
3535
select {
3636
case <-mockStream.WrittenRTP():
3737
case <-time.After(10 * time.Millisecond):
38-
t.Error("rtp packet written but not found")
38+
assert.Fail(t, "rtp packet written but not found")
3939
}
4040
select {
4141
case <-mockStream.WrittenRTP():
42-
t.Error("single rtp packet written, but multiple found")
42+
assert.Fail(t, "single rtp packet written, but multiple found")
4343
case <-time.After(10 * time.Millisecond):
4444
}
4545

4646
mockStream.ReceiveRTCP([]rtcp.Packet{&rtcp.PictureLossIndication{}})
4747
select {
4848
case r := <-mockStream.ReadRTCP():
49-
if r.Err != nil {
50-
t.Errorf("read rtcp returned error: %v", r.Err)
51-
}
49+
assert.NoError(t, r.Err, "read rtcp returned error")
5250
case <-time.After(10 * time.Millisecond):
53-
t.Error("rtcp packet received but not read")
51+
assert.Fail(t, "rtcp packet received but not read")
5452
}
5553
select {
5654
case r := <-mockStream.ReadRTCP():
57-
t.Errorf("single rtcp packet received, but multiple read: %v", r)
55+
assert.Fail(t, "single rtcp packet received, but multiple read: %v", r)
5856
case <-time.After(10 * time.Millisecond):
5957
}
6058

6159
mockStream.ReceiveRTP(&rtp.Packet{})
6260
select {
6361
case r := <-mockStream.ReadRTP():
64-
if r.Err != nil {
65-
t.Errorf("read rtcp returned error: %v", r.Err)
66-
}
62+
assert.NoError(t, r.Err, "read rtp returned error")
6763
case <-time.After(10 * time.Millisecond):
68-
t.Error("rtp packet received but not read")
64+
assert.Fail(t, "rtp packet received but not read")
6965
}
7066
select {
7167
case r := <-mockStream.ReadRTP():
72-
t.Errorf("single rtp packet received, but multiple read: %v", r)
68+
assert.Fail(t, "single rtp packet received, but multiple read: %v", r)
7369
case <-time.After(10 * time.Millisecond):
7470
}
7571

pkg/gcc/send_side_bwe_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/pion/interceptor/pkg/twcc"
1313
"github.com/pion/rtcp"
1414
"github.com/pion/rtp"
15+
"github.com/stretchr/testify/assert"
1516
"github.com/stretchr/testify/require"
1617
)
1718

@@ -37,13 +38,13 @@ func (m *mockTWCCResponder) Write(pkts []rtcp.Packet, attributes interceptor.Att
3738
// the congestion controller.
3839
type mockGCCWriteStream struct {
3940
twccResponder *mockTWCCResponder
41+
t *testing.T
4042
}
4143

4244
func (m *mockGCCWriteStream) Write(header *rtp.Header, payload []byte, _ interceptor.Attributes) (int, error) {
45+
m.t.Helper()
4346
pkt, err := (&rtp.Packet{Header: *header, Payload: payload}).Marshal()
44-
if err != nil {
45-
panic(err)
46-
}
47+
assert.NoError(m.t, err)
4748

4849
m.twccResponder.rtpChan <- pkt
4950

@@ -63,10 +64,11 @@ func TestSendSideBWE(t *testing.T) {
6364
require.NotNil(t, bwe)
6465

6566
gccMock := &mockGCCWriteStream{
66-
&mockTWCCResponder{
67+
twccResponder: &mockTWCCResponder{
6768
bwe,
6869
make(chan []byte, 500),
6970
},
71+
t: t,
7072
}
7173

7274
twccSender, err := (&twcc.SenderInterceptorFactory{}).NewInterceptor("")
@@ -86,12 +88,10 @@ func TestSendSideBWE(t *testing.T) {
8688
rtpWriter = twccWriter.BindLocalStream(streamInfo, rtpWriter)
8789

8890
for i := 0; i <= 100; i++ {
89-
if _, err = rtpWriter.Write(&rtp.Header{SSRC: 1, Extensions: []rtp.Extension{}}, rtpPayload, nil); err != nil {
90-
panic(err)
91-
}
92-
if _, _, err = twccInboundRTP.Read(buffer, nil); err != nil {
93-
panic(err)
94-
}
91+
_, err = rtpWriter.Write(&rtp.Header{SSRC: 1, Extensions: []rtp.Extension{}}, rtpPayload, nil)
92+
assert.NoError(t, err)
93+
_, _, err = twccInboundRTP.Read(buffer, nil)
94+
assert.NoError(t, err)
9595
}
9696

9797
// Sending a stream with zero loss and no RTT should increase estimate

pkg/mock/interceptor_test.go

Lines changed: 48 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"testing"
99

1010
"github.com/pion/interceptor"
11+
"github.com/stretchr/testify/assert"
1112
)
1213

1314
//nolint:cyclop
@@ -21,23 +22,25 @@ func TestInterceptor(t *testing.T) {
2122
t.Run("Default", func(t *testing.T) {
2223
testInterceptor := &Interceptor{}
2324

24-
if testInterceptor.BindRTCPWriter(dummyRTCPWriter) != dummyRTCPWriter {
25-
t.Error("Default BindRTCPWriter should return given writer")
26-
}
27-
if testInterceptor.BindRTCPReader(dummyRTCPReader) != dummyRTCPReader {
28-
t.Error("Default BindRTCPReader should return given reader")
29-
}
30-
if testInterceptor.BindLocalStream(dummyStreamInfo, dummyRTPWriter) != dummyRTPWriter {
31-
t.Error("Default BindLocalStream should return given writer")
32-
}
25+
assert.Equal(
26+
t, dummyRTCPWriter, testInterceptor.BindRTCPWriter(dummyRTCPWriter),
27+
"Default BindRTCPWriter should return given writer",
28+
)
29+
assert.Equal(
30+
t, dummyRTCPReader, testInterceptor.BindRTCPReader(dummyRTCPReader),
31+
"Default BindRTCPReader should return given reader",
32+
)
33+
assert.Equal(
34+
t, dummyRTPWriter, testInterceptor.BindLocalStream(dummyStreamInfo, dummyRTPWriter),
35+
"Default BindLocalStream should return given writer",
36+
)
3337
testInterceptor.UnbindLocalStream(dummyStreamInfo)
34-
if testInterceptor.BindRemoteStream(dummyStreamInfo, dummyRTPReader) != dummyRTPReader {
35-
t.Error("Default BindRemoteStream should return given reader")
36-
}
38+
assert.Equal(
39+
t, dummyRTPReader, testInterceptor.BindRemoteStream(dummyStreamInfo, dummyRTPReader),
40+
"Default BindRemoteStream should return given writer",
41+
)
3742
testInterceptor.UnbindRemoteStream(dummyStreamInfo)
38-
if testInterceptor.Close() != nil {
39-
t.Error("Default Close should return nil")
40-
}
43+
assert.NoError(t, testInterceptor.Close(), "Default Close should return nil")
4144
})
4245
t.Run("Custom", func(t *testing.T) {
4346
var (
@@ -83,44 +86,38 @@ func TestInterceptor(t *testing.T) {
8386
},
8487
}
8588

86-
if testInterceptor.BindRTCPWriter(dummyRTCPWriter) != dummyRTCPWriter {
87-
t.Error("Mocked BindRTCPWriter should return given writer")
88-
}
89-
if testInterceptor.BindRTCPReader(dummyRTCPReader) != dummyRTCPReader {
90-
t.Error("Mocked BindRTCPReader should return given reader")
91-
}
92-
if testInterceptor.BindLocalStream(dummyStreamInfo, dummyRTPWriter) != dummyRTPWriter {
93-
t.Error("Mocked BindLocalStream should return given writer")
94-
}
89+
assert.Equal(
90+
t, dummyRTCPWriter, testInterceptor.BindRTCPWriter(dummyRTCPWriter),
91+
"Mocked BindRTCPWriter should return given writer",
92+
)
93+
assert.Equal(
94+
t, dummyRTCPReader, testInterceptor.BindRTCPReader(dummyRTCPReader),
95+
"Mocked BindRTCPReader should return given reader",
96+
)
97+
assert.Equal(
98+
t, dummyRTPWriter, testInterceptor.BindLocalStream(dummyStreamInfo, dummyRTPWriter),
99+
"Mocked BindLocalStream should return given writer",
100+
)
95101
testInterceptor.UnbindLocalStream(dummyStreamInfo)
96-
if testInterceptor.BindRemoteStream(dummyStreamInfo, dummyRTPReader) != dummyRTPReader {
97-
t.Error("Mocked BindRemoteStream should return given reader")
98-
}
102+
assert.Equal(
103+
t, dummyRTPReader, testInterceptor.BindRemoteStream(dummyStreamInfo, dummyRTPReader),
104+
"Mocked BindRemoteStream should return given writer",
105+
)
99106
testInterceptor.UnbindRemoteStream(dummyStreamInfo)
100-
if testInterceptor.Close() != nil {
101-
t.Error("Mocked Close should return nil")
102-
}
107+
assert.NoError(t, testInterceptor.Close(), "Mocked Close should return nil")
103108

104-
if cnt := atomic.LoadUint32(&cntBindRTCPWriter); cnt != 1 {
105-
t.Errorf("BindRTCPWriterFn is expected to be called once, but called %d times", cnt)
106-
}
107-
if cnt := atomic.LoadUint32(&cntBindRTCPReader); cnt != 1 {
108-
t.Errorf("BindRTCPReaderFn is expected to be called once, but called %d times", cnt)
109-
}
110-
if cnt := atomic.LoadUint32(&cntBindLocalStream); cnt != 1 {
111-
t.Errorf("BindLocalStreamFn is expected to be called once, but called %d times", cnt)
112-
}
113-
if cnt := atomic.LoadUint32(&cntUnbindLocalStream); cnt != 1 {
114-
t.Errorf("UnbindLocalStreamFn is expected to be called once, but called %d times", cnt)
115-
}
116-
if cnt := atomic.LoadUint32(&cntBindRemoteStream); cnt != 1 {
117-
t.Errorf("BindRemoteStreamFn is expected to be called once, but called %d times", cnt)
118-
}
119-
if cnt := atomic.LoadUint32(&cntUnbindRemoteStream); cnt != 1 {
120-
t.Errorf("UnbindRemoteStreamFn is expected to be called once, but called %d times", cnt)
121-
}
122-
if cnt := atomic.LoadUint32(&cntClose); cnt != 1 {
123-
t.Errorf("CloseFn is expected to be called once, but called %d times", cnt)
124-
}
109+
assert.Equal(t, uint32(1), atomic.LoadUint32(&cntBindRTCPWriter), "BindRTCPWriterFn is expected to be called once")
110+
assert.Equal(t, uint32(1), atomic.LoadUint32(&cntBindRTCPReader), "BindRTCPReaderFn is expected to be called once")
111+
assert.Equal(t, uint32(1), atomic.LoadUint32(&cntBindLocalStream), "BindLocalStreamFn is expected to be called once")
112+
assert.Equal(
113+
t, uint32(1), atomic.LoadUint32(&cntUnbindLocalStream), "UnbindLocalStreamFn is expected to be called once",
114+
)
115+
assert.Equal(
116+
t, uint32(1), atomic.LoadUint32(&cntBindRemoteStream), "BindRemoteStreamFn is expected to be called once",
117+
)
118+
assert.Equal(
119+
t, uint32(1), atomic.LoadUint32(&cntUnbindRemoteStream), "UnbindRemoteStreamFn is expected to be called once",
120+
)
121+
assert.Equal(t, uint32(1), atomic.LoadUint32(&cntClose), "CloseFn is expected to be called once")
125122
})
126123
}

0 commit comments

Comments
 (0)