6a0ce8914e
Add 8-case table-driven test covering nil addr, IPv4/IPv6/domain/unknown
addr types for both tcp and udp networks.
Ref: 03f4b12 (fix(handler): use addr-family-specific network for SOCKS5 BIND)
69 lines
1.4 KiB
Go
69 lines
1.4 KiB
Go
package v5
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/go-gost/gosocks5"
|
|
)
|
|
|
|
func TestNetworkAddr(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
network string
|
|
addr *gosocks5.Addr
|
|
want string
|
|
}{
|
|
{
|
|
name: "nil addr returns unmodified",
|
|
network: "tcp",
|
|
addr: nil,
|
|
want: "tcp",
|
|
},
|
|
{
|
|
name: "IPv4 tcp returns tcp4",
|
|
network: "tcp",
|
|
addr: &gosocks5.Addr{Type: gosocks5.AddrIPv4},
|
|
want: "tcp4",
|
|
},
|
|
{
|
|
name: "IPv6 tcp returns tcp6",
|
|
network: "tcp",
|
|
addr: &gosocks5.Addr{Type: gosocks5.AddrIPv6},
|
|
want: "tcp6",
|
|
},
|
|
{
|
|
name: "IPv4 udp returns udp4",
|
|
network: "udp",
|
|
addr: &gosocks5.Addr{Type: gosocks5.AddrIPv4},
|
|
want: "udp4",
|
|
},
|
|
{
|
|
name: "IPv6 udp returns udp6",
|
|
network: "udp",
|
|
addr: &gosocks5.Addr{Type: gosocks5.AddrIPv6},
|
|
want: "udp6",
|
|
},
|
|
{
|
|
name: "domain addr returns unmodified",
|
|
network: "tcp",
|
|
addr: &gosocks5.Addr{Type: gosocks5.AddrDomain},
|
|
want: "tcp",
|
|
},
|
|
{
|
|
name: "unknown addr type returns unmodified",
|
|
network: "udp",
|
|
addr: &gosocks5.Addr{Type: 99},
|
|
want: "udp",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := networkAddr(tt.network, tt.addr)
|
|
if got != tt.want {
|
|
t.Errorf("networkAddr(%q, %v) = %q, want %q", tt.network, tt.addr, got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|