From 977381f9ccf1f2865b9e2749a9d95851ad2bac55 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 11 Jul 2020 01:53:02 +0000 Subject: [PATCH] wgengine/magicsock: make trivial natlab test pass. Signed-off-by: David Anderson --- wgengine/magicsock/magicsock_test.go | 35 +++++++++++++--------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/wgengine/magicsock/magicsock_test.go b/wgengine/magicsock/magicsock_test.go index 50a537858..9af58f9cf 100644 --- a/wgengine/magicsock/magicsock_test.go +++ b/wgengine/magicsock/magicsock_test.go @@ -188,13 +188,13 @@ func TestPickDERPFallback(t *testing.T) { } } -func makeConfigs(t *testing.T, ports []uint16) []wgcfg.Config { +func makeConfigs(t *testing.T, addrs []netaddr.IPPort) []wgcfg.Config { t.Helper() var privKeys []wgcfg.PrivateKey var addresses [][]wgcfg.CIDR - for i := range ports { + for i := range addrs { privKey, err := wgcfg.NewPrivateKey() if err != nil { t.Fatal(err) @@ -207,14 +207,14 @@ func makeConfigs(t *testing.T, ports []uint16) []wgcfg.Config { } var cfgs []wgcfg.Config - for i, port := range ports { + for i, addr := range addrs { cfg := wgcfg.Config{ Name: fmt.Sprintf("peer%d", i+1), PrivateKey: privKeys[i], Addresses: addresses[i], - ListenPort: port, + ListenPort: addr.Port, } - for peerNum, port := range ports { + for peerNum, addr := range addrs { if peerNum == i { continue } @@ -222,8 +222,8 @@ func makeConfigs(t *testing.T, ports []uint16) []wgcfg.Config { PublicKey: privKeys[peerNum].Public(), AllowedIPs: addresses[peerNum], Endpoints: []wgcfg.Endpoint{{ - Host: "127.0.0.1", - Port: port, + Host: addr.IP.String(), + Port: addr.Port, }}, PersistentKeepalive: 25, } @@ -340,7 +340,6 @@ func TestTwoDevicePing(t *testing.T) { testTwoDevicePing(t, false) }) t.Run("natlab", func(t *testing.T) { - t.Skip("TODO: finish") testTwoDevicePing(t, true) }) } @@ -366,15 +365,18 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) { var stunTestIP = "127.0.0.1" var stunMachine, machine1, machine2 *natlab.Machine + var conn1IP, conn2IP = netaddr.IPv4(127, 0, 0, 1), netaddr.IPv4(127, 0, 0, 1) if useNatlab { stunMachine = &natlab.Machine{Name: "stun"} machine1 = &natlab.Machine{Name: "machine1"} machine2 = &natlab.Machine{Name: "machine2"} internet := natlab.NewInternet() stunIf := stunMachine.Attach("eth0", internet) - machine1.Attach("eth0", internet) - machine2.Attach("eth0", internet) + m1If := machine1.Attach("eth0", internet) + m2If := machine2.Attach("eth0", internet) stunTestIP = stunIf.V4().String() + conn1IP = m1If.V4() + conn2IP = m2If.V4() } stunAddr, stunCleanupFn := stuntest.ServeWithPacketListener(t, packetConn(stunMachine)) @@ -431,16 +433,11 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) { conn2.Start() conn2.SetDERPMap(derpMap) - ports := []uint16{conn1.LocalPort(), conn2.LocalPort()} - if useNatlab { - // TODO: ... - } else { - addrs := []netaddr.IPPort{ - // netaddr.IPPort - } - _ = addrs + addrs := []netaddr.IPPort{ + {IP: conn1IP, Port: conn1.LocalPort()}, + {IP: conn2IP, Port: conn2.LocalPort()}, } - cfgs := makeConfigs(t, ports) + cfgs := makeConfigs(t, addrs) if err := conn1.SetPrivateKey(cfgs[0].PrivateKey); err != nil { t.Fatal(err)