Files
EasyTier/easytier-go/platform/netstd/socket_options_unix_test.go
KKRainbow 3d0c9c3ca5 chore(go): use lowercase module import path (#2560)
* chore(go): use lowercase module import path
* ci: scope checks for Go module changes
2026-09-10 15:13:55 +08:00

34 lines
970 B
Go

//go:build aix || android || darwin || dragonfly || freebsd || linux || netbsd || openbsd
package netstd
import (
"net"
"testing"
"github.com/easytier/easytier/easytier-go/platform"
)
func TestSocketFactoryUsesNativeTCPReuseAddrDefault(t *testing.T) {
firstServer := listenTCP4(t)
defer firstServer.Close()
secondServer := listenTCP4(t)
defer secondServer.Close()
sourcePort := unusedTCP4Port(t)
reuse := true
first := connectTCP(t, firstServer, platform.TCPBindOptions{
Context: platform.SocketContext{IPVersion: platform.IPVersionV4},
LocalAddr: &net.TCPAddr{IP: net.IPv4zero, Port: sourcePort},
ReuseAddr: &reuse,
}, platform.TCPConnectSTUNProbe)
defer first.Close()
second := connectTCP(t, secondServer, platform.TCPBindOptions{
Context: platform.SocketContext{IPVersion: platform.IPVersionV4},
LocalAddr: &net.TCPAddr{IP: net.IPv4zero, Port: sourcePort},
OnlyV6: true,
}, platform.TCPConnectHolePunch)
defer second.Close()
}