mirror of
https://github.com/libp2p/go-libp2p.git
synced 2025-11-03 10:50:56 +08:00
basichost: don't allocate when deduplicating multiaddrs (#2206)
* basichost: don't allocate when deduplicating multiaddrs * fix sort.Slice less comparison Co-authored-by: Marco Munizaga <git@marcopolo.io> * interop: don't send loopback addrs --------- Co-authored-by: Marco Munizaga <git@marcopolo.io>
This commit is contained in:
@@ -823,3 +823,29 @@ func TestNormalizeMultiaddr(t *testing.T) {
|
||||
|
||||
require.Equal(t, "/ip4/1.2.3.4/udp/9999/quic-v1/webtransport", h1.NormalizeMultiaddr(ma.StringCast("/ip4/1.2.3.4/udp/9999/quic-v1/webtransport/certhash/uEgNmb28")).String())
|
||||
}
|
||||
|
||||
func TestDedupAddrs(t *testing.T) {
|
||||
tcpAddr := ma.StringCast("/ip4/127.0.0.1/tcp/1234")
|
||||
quicAddr := ma.StringCast("/ip4/127.0.0.1/udp/1234/quic-v1")
|
||||
wsAddr := ma.StringCast("/ip4/127.0.0.1/tcp/1234/ws")
|
||||
|
||||
type testcase struct {
|
||||
in, out []ma.Multiaddr
|
||||
}
|
||||
|
||||
for i, tc := range []testcase{
|
||||
{in: nil, out: nil},
|
||||
{in: []ma.Multiaddr{tcpAddr}, out: []ma.Multiaddr{tcpAddr}},
|
||||
{in: []ma.Multiaddr{tcpAddr, tcpAddr, tcpAddr}, out: []ma.Multiaddr{tcpAddr}},
|
||||
{in: []ma.Multiaddr{tcpAddr, quicAddr, tcpAddr}, out: []ma.Multiaddr{tcpAddr, quicAddr}},
|
||||
{in: []ma.Multiaddr{tcpAddr, quicAddr, wsAddr}, out: []ma.Multiaddr{tcpAddr, quicAddr, wsAddr}},
|
||||
} {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("test %d", i), func(t *testing.T) {
|
||||
deduped := dedupAddrs(tc.in)
|
||||
for _, a := range tc.out {
|
||||
require.Contains(t, deduped, a)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user