diff --git a/.golangci.yml b/.golangci.yml index 88cb4fbf..120faf29 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -19,12 +19,16 @@ linters-settings: recommendations: - errors forbidigo: + analyze-types: true forbid: - ^fmt.Print(f|ln)?$ - ^log.(Panic|Fatal|Print)(f|ln)?$ - ^os.Exit$ - ^panic$ - ^print(ln)?$ + - p: ^testing.T.(Error|Errorf|Fatal|Fatalf|Fail|FailNow)$ + pkg: ^testing$ + msg: "use testify/assert instead" varnamelen: max-distance: 12 min-name-length: 2 @@ -127,9 +131,12 @@ issues: exclude-dirs-use-default: false exclude-rules: # Allow complex tests and examples, better to be self contained - - path: (examples|main\.go|_test\.go) + - path: (examples|main\.go) linters: + - gocognit - forbidigo + - path: _test\.go + linters: - gocognit # Allow forbidden identifiers in CLI commands diff --git a/chunk_test.go b/chunk_test.go index 6ec4b633..cdc5ec9e 100644 --- a/chunk_test.go +++ b/chunk_test.go @@ -20,9 +20,7 @@ func TestInitChunk(t *testing.T) { 0x00, 0x00, 0x80, 0x03, 0x00, 0x06, 0x80, 0xc1, 0x00, 0x00, } err := pkt.unmarshal(true, rawPkt) - if err != nil { - t.Errorf("Unmarshal failed, has chunk") - } + assert.NoError(t, err) initChunk, ok := pkt.chunks[0].(*chunkInit) assert.True(t, ok, "Failed to cast Chunk -> Init") diff --git a/vnet_test.go b/vnet_test.go index df6efedb..f0dfeabe 100644 --- a/vnet_test.go +++ b/vnet_test.go @@ -5,7 +5,6 @@ package sctp import ( "bytes" - "fmt" "math/rand" "net" "reflect" @@ -34,8 +33,6 @@ type vNetEnv struct { numToDropCookieAck int } -var errSCTPPacketParse = fmt.Errorf("unable to parse SCTP packet") - func (venv *vNetEnv) dropNextDataChunk(numToDrop int) { venv.numToDropData = numToDrop } @@ -52,7 +49,8 @@ func (venv *vNetEnv) dropNextCookieAckChunk(numToDrop int) { venv.numToDropCookieAck = numToDrop } -func buildVNetEnv(cfg *vNetEnvConfig) (*vNetEnv, error) { //nolint:cyclop +func buildVNetEnv(t *testing.T, cfg *vNetEnvConfig) (*vNetEnv, error) { //nolint:cyclop + t.Helper() log := cfg.log var venv *vNetEnv @@ -76,9 +74,7 @@ func buildVNetEnv(cfg *vNetEnvConfig) (*vNetEnv, error) { //nolint:cyclop return func(c vnet.Chunk) bool { var toDrop bool p := &packet{} - if err2 := p.unmarshal(true, c.UserData()); err2 != nil { - panic(errSCTPPacketParse) - } + assert.NoError(t, p.unmarshal(true, c.UserData())) loop: for i := 0; i < len(p.chunks); i++ { @@ -174,7 +170,7 @@ func testRwndFull(t *testing.T, unordered bool) { //nolint:cyclop loggerFactory := logging.NewDefaultLoggerFactory() log := loggerFactory.NewLogger("test") - venv, err := buildVNetEnv(&vNetEnvConfig{ + venv, err := buildVNetEnv(t, &vNetEnvConfig{ minDelay: 200 * time.Millisecond, loggerFactory: loggerFactory, log: log, @@ -414,7 +410,7 @@ func TestStreamClose(t *testing.T) { //nolint:cyclop loggerFactory := logging.NewDefaultLoggerFactory() log := loggerFactory.NewLogger("test") - venv, err := buildVNetEnv(&vNetEnvConfig{ + venv, err := buildVNetEnv(t, &vNetEnvConfig{ loggerFactory: loggerFactory, log: log, }) @@ -600,7 +596,7 @@ func TestCookieEchoRetransmission(t *testing.T) { loggerFactory := logging.NewDefaultLoggerFactory() log := loggerFactory.NewLogger("test") - venv, err := buildVNetEnv(&vNetEnvConfig{ + venv, err := buildVNetEnv(t, &vNetEnvConfig{ minDelay: 200 * time.Millisecond, loggerFactory: loggerFactory, log: log,