Skip to content

Commit

Permalink
test: add TestTcpTransportWithLinkLocalAddress
Browse files Browse the repository at this point in the history
  • Loading branch information
jclab-joseph committed Dec 6, 2023
1 parent 3a8848f commit 56755fb
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions p2p/transport/tcp/tcp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package tcp
import (
"context"
"errors"
"net"
"testing"

"github.com/libp2p/go-libp2p/core/crypto"
Expand Down Expand Up @@ -46,6 +47,57 @@ func TestTcpTransport(t *testing.T) {
envReuseportVal = true
}

func TestTcpTransportWithLinkLocalAddress(t *testing.T) {
ifaces, err := net.Interfaces()
if err != nil {
t.Error(err)
return
}

var targetAddr ma.Multiaddr

findInterface:
for _, iface := range ifaces {
addrs, err := iface.Addrs()
if err == nil {
for _, a := range addrs {
addr, err := manet.FromNetAddr(a)
if err == nil {
if manet.IsIP6LinkLocal(addr) {
targetAddr = ma.StringCast("/ip6zone/" + iface.Name + addr.String())
break findInterface
}
}
}
}
}

if targetAddr == nil {
t.Fail()
return
}

for i := 0; i < 2; i++ {
peerA, ia := makeInsecureMuxer(t)
_, ib := makeInsecureMuxer(t)

ua, err := tptu.New(ia, muxers, nil, nil, nil)
require.NoError(t, err)
ta, err := NewTCPTransport(ua, nil)
require.NoError(t, err)
ub, err := tptu.New(ib, muxers, nil, nil, nil)
require.NoError(t, err)
tb, err := NewTCPTransport(ub, nil)
require.NoError(t, err)

zero := targetAddr.String() + "/tcp/0"
ttransport.SubtestTransport(t, ta, tb, zero, peerA)

envReuseportVal = false
}
envReuseportVal = true
}

func TestTcpTransportWithMetrics(t *testing.T) {
peerA, ia := makeInsecureMuxer(t)
_, ib := makeInsecureMuxer(t)
Expand Down

0 comments on commit 56755fb

Please sign in to comment.