Skip to content

Commit ce9a8d5

Browse files
RyanPotatJoeTurki
authored andcommitted
Update lint rules, force testify/assert
1 parent 32d02d5 commit ce9a8d5

32 files changed

+730
-1567
lines changed

.golangci.yml

+10-1
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
@@ -123,13 +127,18 @@ linters:
123127
- wsl # Whitespace Linter - Forces you to use empty lines!
124128

125129
issues:
130+
max-issues-per-linter: 0
131+
max-same-issues: 0
126132
exclude-use-default: false
127133
exclude-dirs-use-default: false
128134
exclude-rules:
129135
# Allow complex tests and examples, better to be self contained
130-
- path: (examples|main\.go|_test\.go)
136+
- path: (examples|main\.go)
131137
linters:
138+
- gocognit
132139
- forbidigo
140+
- path: _test\.go
141+
linters:
133142
- gocognit
134143

135144
# Allow forbidden identifiers in CLI commands

bench_test.go

+21-40
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/pion/logging"
1616
"github.com/pion/transport/v3/dpipe"
1717
"github.com/pion/transport/v3/test"
18+
"github.com/stretchr/testify/assert"
1819
)
1920

2021
func TestSimpleReadWrite(t *testing.T) {
@@ -25,51 +26,38 @@ func TestSimpleReadWrite(t *testing.T) {
2526

2627
ca, cb := dpipe.Pipe()
2728
certificate, err := selfsign.GenerateSelfSigned()
28-
if err != nil {
29-
t.Fatal(err)
30-
}
29+
assert.NoError(t, err)
3130
gotHello := make(chan struct{})
3231

3332
go func() {
3433
server, sErr := testServer(ctx, dtlsnet.PacketConnFromConn(cb), cb.RemoteAddr(), &Config{
3534
Certificates: []tls.Certificate{certificate},
3635
LoggerFactory: logging.NewDefaultLoggerFactory(),
3736
}, false)
38-
if sErr != nil {
39-
t.Error(sErr)
37+
assert.NoError(t, sErr)
4038

41-
return
42-
}
4339
buf := make([]byte, 1024)
44-
if _, sErr = server.Read(buf); sErr != nil { //nolint:contextcheck
45-
t.Error(sErr)
46-
}
40+
_, sErr = server.Read(buf) //nolint:contextcheck
41+
assert.NoError(t, sErr)
42+
4743
gotHello <- struct{}{}
48-
if sErr = server.Close(); sErr != nil { //nolint:contextcheck
49-
t.Error(sErr)
50-
}
44+
assert.NoError(t, server.Close()) //nolint:contextcheck
5145
}()
5246

5347
client, err := testClient(ctx, dtlsnet.PacketConnFromConn(ca), ca.RemoteAddr(), &Config{
5448
LoggerFactory: logging.NewDefaultLoggerFactory(),
5549
InsecureSkipVerify: true,
5650
}, false)
57-
if err != nil {
58-
t.Fatal(err)
59-
}
60-
if _, err = client.Write([]byte("hello")); err != nil {
61-
t.Error(err)
62-
}
51+
assert.NoError(t, err)
52+
_, err = client.Write([]byte("hello"))
53+
assert.NoError(t, err)
6354
select {
6455
case <-gotHello:
6556
// OK
6657
case <-time.After(time.Second * 5):
67-
t.Error("timeout")
68-
}
69-
70-
if err = client.Close(); err != nil {
71-
t.Error(err)
58+
assert.Fail(t, "timeout")
7259
}
60+
assert.NoError(t, client.Close())
7361
}
7462

7563
func benchmarkConn(b *testing.B, payloadSize int64) {
@@ -80,43 +68,36 @@ func benchmarkConn(b *testing.B, payloadSize int64) {
8068

8169
ca, cb := dpipe.Pipe()
8270
certificate, err := selfsign.GenerateSelfSigned()
71+
assert.NoError(b, err)
8372
server := make(chan *Conn)
73+
8474
go func() {
8575
s, sErr := testServer(ctx, dtlsnet.PacketConnFromConn(cb), cb.RemoteAddr(), &Config{
8676
Certificates: []tls.Certificate{certificate},
8777
}, false)
88-
if err != nil {
89-
b.Error(sErr)
78+
assert.NoError(b, sErr)
9079

91-
return
92-
}
9380
server <- s
9481
}()
95-
if err != nil {
96-
b.Fatal(err)
97-
}
82+
9883
hw := make([]byte, payloadSize)
9984
b.ReportAllocs()
10085
b.SetBytes(int64(len(hw)))
10186
go func() {
10287
client, cErr := testClient(
10388
ctx, dtlsnet.PacketConnFromConn(ca), ca.RemoteAddr(), &Config{InsecureSkipVerify: true}, false,
10489
)
105-
if cErr != nil {
106-
b.Error(err)
107-
}
90+
assert.NoError(b, cErr)
10891
for {
109-
if _, cErr = client.Write(hw); cErr != nil { //nolint:contextcheck
110-
b.Error(err)
111-
}
92+
_, cErr = client.Write(hw) //nolint:contextcheck
93+
assert.NoError(b, cErr)
11294
}
11395
}()
11496
s := <-server
11597
buf := make([]byte, 2048)
11698
for i := 0; i < b.N; i++ {
117-
if _, err = s.Read(buf); err != nil {
118-
b.Error(err)
119-
}
99+
_, err = s.Read(buf)
100+
assert.NoError(b, err)
120101
}
121102
})
122103
}

certificate_test.go

+6-17
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,21 @@ package dtls
55

66
import (
77
"crypto/tls"
8-
"reflect"
98
"testing"
109

1110
"github.com/pion/dtls/v3/pkg/crypto/selfsign"
11+
"github.com/stretchr/testify/assert"
1212
)
1313

1414
func TestGetCertificate(t *testing.T) {
1515
certificateWildcard, err := selfsign.GenerateSelfSignedWithDNS("*.test.test")
16-
if err != nil {
17-
t.Fatal(err)
18-
}
16+
assert.NoError(t, err)
1917

2018
certificateTest, err := selfsign.GenerateSelfSignedWithDNS("test.test", "www.test.test", "pop.test.test")
21-
if err != nil {
22-
t.Fatal(err)
23-
}
19+
assert.NoError(t, err)
2420

2521
certificateRandom, err := selfsign.GenerateSelfSigned()
26-
if err != nil {
27-
t.Fatal(err)
28-
}
22+
assert.NoError(t, err)
2923

3024
testCases := []struct {
3125
localCertificates []tls.Certificate
@@ -92,13 +86,8 @@ func TestGetCertificate(t *testing.T) {
9286
localGetCertificate: test.getCertificate,
9387
}
9488
cert, err := cfg.getCertificate(&ClientHelloInfo{ServerName: test.serverName})
95-
if err != nil {
96-
t.Fatal(err)
97-
}
98-
99-
if !reflect.DeepEqual(cert.Leaf, test.expectedCertificate.Leaf) {
100-
t.Fatalf("Certificate does not match: expected(%v) actual(%v)", test.expectedCertificate.Leaf, cert.Leaf)
101-
}
89+
assert.NoError(t, err)
90+
assert.Equal(t, test.expectedCertificate.Leaf, cert.Leaf, "Certificate Leaf should match expected")
10291
})
10392
}
10493
}

cipher_suite_go114_test.go

+9-28
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,29 @@ package dtls
88

99
import (
1010
"testing"
11+
12+
"github.com/stretchr/testify/assert"
1113
)
1214

1315
func TestInsecureCipherSuites(t *testing.T) {
14-
r := InsecureCipherSuites()
15-
16-
if len(r) != 0 {
17-
t.Fatalf("Expected no insecure ciphersuites, got %d", len(r))
18-
}
16+
assert.Empty(t, InsecureCipherSuites(), "Expected no insecure ciphersuites")
1917
}
2018

2119
func TestCipherSuites(t *testing.T) {
2220
ours := allCipherSuites()
2321
theirs := CipherSuites()
24-
25-
if len(ours) != len(theirs) {
26-
t.Fatalf("Expected %d CipherSuites, got %d", len(ours), len(theirs))
27-
}
22+
assert.Equal(t, len(ours), len(theirs))
2823

2924
for i, s := range ours {
3025
i := i
3126
s := s
3227
t.Run(s.String(), func(t *testing.T) {
3328
cipher := theirs[i]
34-
if cipher.ID != uint16(s.ID()) {
35-
t.Fatalf("Expected ID: 0x%04X, got 0x%04X", s.ID(), cipher.ID)
36-
}
37-
38-
if cipher.Name != s.String() {
39-
t.Fatalf("Expected Name: %s, got %s", s.String(), cipher.Name)
40-
}
41-
42-
if len(cipher.SupportedVersions) != 1 {
43-
t.Fatalf("Expected %d SupportedVersion, got %d", 1, len(cipher.SupportedVersions))
44-
}
45-
46-
if cipher.SupportedVersions[0] != VersionDTLS12 {
47-
t.Fatalf("Expected SupportedVersions 0x%04X, got 0x%04X", VersionDTLS12, cipher.SupportedVersions[0])
48-
}
49-
50-
if cipher.Insecure {
51-
t.Fatalf("Expected Insecure %t, got %t", false, cipher.Insecure)
52-
}
29+
assert.Equal(t, cipher.ID, uint16(s.ID()))
30+
assert.Equal(t, cipher.Name, s.String())
31+
assert.Equal(t, 1, len(cipher.SupportedVersions), "Expected SupportedVersion to be 1")
32+
assert.Equal(t, uint16(VersionDTLS12), cipher.SupportedVersions[0], "Expected SupportedVersion to match")
33+
assert.False(t, cipher.Insecure, "Expected Insecure")
5334
})
5435
}
5536
}

cipher_suite_test.go

+7-20
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
dtlsnet "github.com/pion/dtls/v3/pkg/net"
1313
"github.com/pion/transport/v3/dpipe"
1414
"github.com/pion/transport/v3/test"
15+
"github.com/stretchr/testify/assert"
1516
)
1617

1718
func TestCipherSuiteName(t *testing.T) {
@@ -24,18 +25,12 @@ func TestCipherSuiteName(t *testing.T) {
2425
}
2526

2627
for _, testCase := range testCases {
27-
res := CipherSuiteName(testCase.suite)
28-
if res != testCase.expected {
29-
t.Fatalf("Expected: %s, got %s", testCase.expected, res)
30-
}
28+
assert.Equal(t, testCase.expected, CipherSuiteName(testCase.suite))
3129
}
3230
}
3331

3432
func TestAllCipherSuites(t *testing.T) {
35-
actual := len(allCipherSuites())
36-
if actual == 0 {
37-
t.Fatal()
38-
}
33+
assert.NotEmpty(t, allCipherSuites())
3934
}
4035

4136
// CustomCipher that is just used to assert Custom IDs work.
@@ -84,18 +79,10 @@ func TestCustomCipherSuite(t *testing.T) {
8479
}, true)
8580

8681
clientResult := <-resultCh
87-
88-
if err != nil {
89-
t.Error(err)
90-
} else {
91-
_ = server.Close()
92-
}
93-
94-
if clientResult.err != nil {
95-
t.Error(clientResult.err)
96-
} else {
97-
_ = clientResult.c.Close()
98-
}
82+
assert.NoError(t, err)
83+
assert.NoError(t, server.Close())
84+
assert.Nil(t, clientResult.err)
85+
assert.NoError(t, clientResult.c.Close())
9986
}
10087

10188
t.Run("Custom ID", func(*testing.T) {

config_test.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,32 @@ import (
1212
"testing"
1313

1414
"github.com/pion/dtls/v3/pkg/crypto/selfsign"
15+
"github.com/stretchr/testify/assert"
1516
)
1617

17-
func TestValidateConfig(t *testing.T) { //nolint:cyclop
18+
func TestValidateConfig(t *testing.T) {
1819
cert, err := selfsign.GenerateSelfSigned()
1920
if err != nil {
20-
t.Fatalf("TestValidateConfig: Config validation error(%v), self signed certificate not generated", err)
21+
assert.NoError(t, err, "TestValidateConfig: Config validation error, self signed certificate not generated")
2122

2223
return
2324
}
2425
dsaPrivateKey := &dsa.PrivateKey{}
2526
err = dsa.GenerateParameters(&dsaPrivateKey.Parameters, rand.Reader, dsa.L1024N160)
2627
if err != nil {
27-
t.Fatalf("TestValidateConfig: Config validation error(%v), DSA parameters not generated", err)
28+
assert.NoError(t, err, "TestValidateConfig: Config validation error, DSA parameters not generated")
2829

2930
return
3031
}
3132
err = dsa.GenerateKey(dsaPrivateKey, rand.Reader)
3233
if err != nil {
33-
t.Fatalf("TestValidateConfig: Config validation error(%v), DSA private key not generated", err)
34+
assert.NoError(t, err, "TestValidateConfig: Config validation error, DSA private key not generated")
3435

3536
return
3637
}
3738
rsaPrivateKey, err := rsa.GenerateKey(rand.Reader, 2048)
3839
if err != nil {
39-
t.Fatalf("TestValidateConfig: Config validation error(%v), RSA private key not generated", err)
40+
assert.NoError(t, err, "TestValidateConfig: Config validation error, RSA private key not generated")
4041

4142
return
4243
}
@@ -133,11 +134,9 @@ func TestValidateConfig(t *testing.T) { //nolint:cyclop
133134
err := validateConfig(testCase.config)
134135
if testCase.expErr != nil || testCase.wantAnyErr {
135136
if testCase.expErr != nil && !errors.Is(err, testCase.expErr) {
136-
t.Fatalf("TestValidateConfig: Config validation error exp(%v) failed(%v)", testCase.expErr, err)
137-
}
138-
if err == nil {
139-
t.Fatalf("TestValidateConfig: Config validation expected an error")
137+
assert.ErrorIs(t, err, testCase.expErr, "TestValidateConfig")
140138
}
139+
assert.Error(t, err, "TestValidateConfig: Config validation expected an error")
141140
}
142141
})
143142
}

0 commit comments

Comments
 (0)