Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
83 changes: 22 additions & 61 deletions addr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@
package stun

import (
"errors"
"io"
"net"
"testing"

"github.com/stretchr/testify/assert"
)

func TestMappedAddress(t *testing.T) {
Expand All @@ -16,48 +17,32 @@ func TestMappedAddress(t *testing.T) {
IP: net.ParseIP("122.12.34.5"),
Port: 5412,
}
if addr.String() != "122.12.34.5:5412" {
t.Error("bad string", addr)
}
assert.Equal(t, "122.12.34.5:5412", addr.String(), "bad string")
t.Run("Bad length", func(t *testing.T) {
badAddr := &MappedAddress{
IP: net.IP{1, 2, 3},
}
if err := badAddr.AddTo(msg); err == nil {
t.Error("should error")
}
assert.Error(t, badAddr.AddTo(msg), "should error")
})
t.Run("AddTo", func(t *testing.T) {
if err := addr.AddTo(msg); err != nil {
t.Error(err)
}
assert.NoError(t, addr.AddTo(msg))
t.Run("GetFrom", func(t *testing.T) {
got := new(MappedAddress)
if err := got.GetFrom(msg); err != nil {
t.Error(err)
}
if !got.IP.Equal(addr.IP) {
t.Error("got bad IP: ", got.IP)
}
assert.NoError(t, got.GetFrom(msg))
assert.True(t, got.IP.Equal(addr.IP), "got bad IP: %v", got.IP)
t.Run("Not found", func(t *testing.T) {
message := new(Message)
if err := got.GetFrom(message); !errors.Is(err, ErrAttributeNotFound) {
t.Error("should be not found: ", err)
}
assert.ErrorIs(t, got.GetFrom(message), ErrAttributeNotFound, "should be not found")
})
t.Run("Bad family", func(t *testing.T) {
v, _ := msg.Attributes.Get(AttrMappedAddress)
v.Value[0] = 32
if err := got.GetFrom(msg); err == nil {
t.Error("should error")
}
assert.Error(t, got.GetFrom(msg), "should error")
})
t.Run("Bad length", func(t *testing.T) {
message := new(Message)
message.Add(AttrMappedAddress, []byte{1, 2, 3})
if err := got.GetFrom(message); !errors.Is(err, io.ErrUnexpectedEOF) {
t.Errorf("<%s> should be <%s>", err, io.ErrUnexpectedEOF)
}
assert.ErrorIs(t, got.GetFrom(message), io.ErrUnexpectedEOF)
})
})
})
Expand All @@ -70,22 +55,14 @@ func TestMappedAddressV6(t *testing.T) { //nolint:dupl
Port: 5412,
}
t.Run("AddTo", func(t *testing.T) {
if err := addr.AddTo(m); err != nil {
t.Error(err)
}
assert.NoError(t, addr.AddTo(m))
t.Run("GetFrom", func(t *testing.T) {
got := new(MappedAddress)
if err := got.GetFrom(m); err != nil {
t.Error(err)
}
if !got.IP.Equal(addr.IP) {
t.Error("got bad IP: ", got.IP)
}
assert.NoError(t, got.GetFrom(m))
assert.True(t, got.IP.Equal(addr.IP), "got bad IP: %v", got.IP)
t.Run("Not found", func(t *testing.T) {
message := new(Message)
if err := got.GetFrom(message); !errors.Is(err, ErrAttributeNotFound) {
t.Error("should be not found: ", err)
}
assert.ErrorIs(t, got.GetFrom(message), ErrAttributeNotFound, "should be not found")
})
})
})
Expand All @@ -98,22 +75,14 @@ func TestAlternateServer(t *testing.T) { //nolint:dupl
Port: 5412,
}
t.Run("AddTo", func(t *testing.T) {
if err := addr.AddTo(m); err != nil {
t.Error(err)
}
assert.NoError(t, addr.AddTo(m))
t.Run("GetFrom", func(t *testing.T) {
got := new(AlternateServer)
if err := got.GetFrom(m); err != nil {
t.Error(err)
}
if !got.IP.Equal(addr.IP) {
t.Error("got bad IP: ", got.IP)
}
assert.NoError(t, got.GetFrom(m))
assert.True(t, got.IP.Equal(addr.IP), "got bad IP: %v", got.IP)
t.Run("Not found", func(t *testing.T) {
message := new(Message)
if err := got.GetFrom(message); !errors.Is(err, ErrAttributeNotFound) {
t.Error("should be not found: ", err)
}
assert.ErrorIs(t, got.GetFrom(message), ErrAttributeNotFound, "should be not found")
})
})
})
Expand All @@ -126,22 +95,14 @@ func TestOtherAddress(t *testing.T) { //nolint:dupl
Port: 5412,
}
t.Run("AddTo", func(t *testing.T) {
if err := addr.AddTo(m); err != nil {
t.Error(err)
}
assert.NoError(t, addr.AddTo(m))
t.Run("GetFrom", func(t *testing.T) {
got := new(OtherAddress)
if err := got.GetFrom(m); err != nil {
t.Error(err)
}
if !got.IP.Equal(addr.IP) {
t.Error("got bad IP: ", got.IP)
}
assert.NoError(t, got.GetFrom(m))
assert.True(t, got.IP.Equal(addr.IP), "got bad IP: %v", got.IP)
t.Run("Not found", func(t *testing.T) {
message := new(Message)
if err := got.GetFrom(message); !errors.Is(err, ErrAttributeNotFound) {
t.Error("should be not found: ", err)
}
assert.ErrorIs(t, got.GetFrom(message), ErrAttributeNotFound, "should be not found")
})
})
})
Expand Down
Loading
Loading