swarm_addr_test.go 795 Bytes
Newer Older
Steven Allen's avatar
Steven Allen committed
1
package swarm_test
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
2 3

import (
Jeromy's avatar
Jeromy committed
4
	"context"
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
5 6
	"testing"

Jeromy's avatar
Jeromy committed
7 8 9
	pstore "github.com/libp2p/go-libp2p-peerstore"
	testutil "github.com/libp2p/go-testutil"
	ma "github.com/multiformats/go-multiaddr"
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
)

func TestDialBadAddrs(t *testing.T) {

	m := func(s string) ma.Multiaddr {
		maddr, err := ma.NewMultiaddr(s)
		if err != nil {
			t.Fatal(err)
		}
		return maddr
	}

	ctx := context.Background()
	s := makeSwarms(ctx, t, 1)[0]

	test := func(a ma.Multiaddr) {
		p := testutil.RandPeerIDFatal(t)
Steven Allen's avatar
Steven Allen committed
27 28
		s.Peerstore().AddAddr(p, a, pstore.PermanentAddrTTL)
		if _, err := s.DialPeer(ctx, p); err == nil {
29
			t.Errorf("swarm should not dial: %s", p)
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
30 31 32 33 34 35 36
		}
	}

	test(m("/ip6/fe80::1"))                // link local
	test(m("/ip6/fe80::100"))              // link local
	test(m("/ip4/127.0.0.1/udp/1234/utp")) // utp
}