Fix lint for unused and duplicate code

Fix lint for unused and duplicate code
This commit is contained in:
cnderrauber
2022-10-09 16:47:42 +08:00
committed by cnderrauber
parent a931199dc1
commit a70c38101c
2 changed files with 32 additions and 63 deletions

View File

@@ -140,6 +140,6 @@ var (
errNotImplemented = errors.New("not implemented yet") errNotImplemented = errors.New("not implemented yet")
errNoUDPMuxAvailable = errors.New("no UDP mux is available") errNoUDPMuxAvailable = errors.New("no UDP mux is available")
errNoTCPMuxAvailable = errors.New("no TCP mux is available") errNoTCPMuxAvailable = errors.New("no TCP mux is available")
errListenUnspecified = errors.New("can't listen on unspecified address") // errListenUnspecified = errors.New("can't listen on unspecified address")
errInvalidAddress = errors.New("invalid address") errInvalidAddress = errors.New("invalid address")
) )

View File

@@ -33,75 +33,35 @@ func TestUDPMux(t *testing.T) {
t.Log("IPv6 is not supported on this machine") t.Log("IPv6 is not supported on this machine")
} }
for network, c := range map[string]net.PacketConn{udp4: conn4, udp6: conn6} { connUnspecified, err := net.ListenUDP(udp, nil)
if udpConn, ok := c.(*net.UDPConn); !ok || udpConn == nil {
continue
}
conn := c
t.Run(network, func(t *testing.T) {
udpMux, err := NewUDPMuxDefault(UDPMuxParams{
Logger: nil,
UDPConn: conn,
})
require.NoError(t, err)
defer func() {
_ = udpMux.Close()
_ = conn.Close()
}()
require.NotNil(t, udpMux.LocalAddr(), "udpMux.LocalAddr() is nil")
wg := sync.WaitGroup{}
wg.Add(1)
go func() {
defer wg.Done()
testMuxConnection(t, udpMux, "ufrag1", udp)
}()
// skip ipv6 test on i386
const ptrSize = 32 << (^uintptr(0) >> 63)
if ptrSize != 32 || network != udp6 {
testMuxConnection(t, udpMux, "ufrag2", network)
}
wg.Wait()
require.NoError(t, udpMux.Close())
// can't create more connections
_, err = udpMux.GetConn("failufrag", udpMux.LocalAddr())
require.Error(t, err)
})
}
}
func TestUDPMuxUnspecifiedAddr(t *testing.T) {
report := test.CheckRoutines(t)
defer report()
lim := test.TimeOut(time.Second * 30)
defer lim.Stop()
conn, err := net.ListenUDP(udp, nil)
require.NoError(t, err) require.NoError(t, err)
conn4, err := net.ListenUDP(udp, &net.UDPAddr{IP: net.IPv4zero}) conn4Unspecified, err := net.ListenUDP(udp, &net.UDPAddr{IP: net.IPv4zero})
require.NoError(t, err) require.NoError(t, err)
conn6, err := net.ListenUDP(udp, &net.UDPAddr{IP: net.IPv6unspecified}) conn6Unspecified, err := net.ListenUDP(udp, &net.UDPAddr{IP: net.IPv6unspecified})
if err != nil { if err != nil {
t.Log("IPv6 is not supported on this machine") t.Log("IPv6 is not supported on this machine")
} }
for network, c := range map[string]net.PacketConn{udp: conn, udp4: conn4, udp6: conn6} { type testCase struct {
if udpConn, ok := c.(*net.UDPConn); !ok || udpConn == nil { name string
conn net.PacketConn
network string
}
for _, subTest := range []testCase{
{name: "IPv4loopback", conn: conn4, network: udp4},
{name: "IPv6loopback", conn: conn6, network: udp6},
{name: "Unspecified", conn: connUnspecified, network: udp},
{name: "IPv4Unspecified", conn: conn4Unspecified, network: udp4},
{name: "IPv6Unspecified", conn: conn6Unspecified, network: udp6},
} {
network, conn := subTest.network, subTest.conn
if udpConn, ok := conn.(*net.UDPConn); !ok || udpConn == nil {
continue continue
} }
conn := c t.Run(subTest.name, func(t *testing.T) {
t.Run(network, func(t *testing.T) {
udpMux, err := NewUDPMuxDefault(UDPMuxParams{ udpMux, err := NewUDPMuxDefault(UDPMuxParams{
Logger: nil, Logger: nil,
UDPConn: conn, UDPConn: conn,
@@ -124,9 +84,18 @@ func TestUDPMuxUnspecifiedAddr(t *testing.T) {
testMuxConnection(t, udpMux, "ufrag1", udp) testMuxConnection(t, udpMux, "ufrag1", udp)
}() }()
// skip ipv6 test on i386
const ptrSize = 32 << (^uintptr(0) >> 63) const ptrSize = 32 << (^uintptr(0) >> 63)
if ptrSize != 32 || network != udp6 { if network == udp {
wg.Add(1)
go func() {
defer wg.Done()
testMuxConnection(t, udpMux, "ufrag2", udp4)
}()
// skip ipv6 test on i386
if ptrSize != 32 {
testMuxConnection(t, udpMux, "ufrag3", udp6)
}
} else if ptrSize != 32 || network != udp6 {
testMuxConnection(t, udpMux, "ufrag2", network) testMuxConnection(t, udpMux, "ufrag2", network)
} }