mirror of
https://github.com/tailscale/tailscale.git
synced 2025-03-14 01:11:01 +00:00
wgengine/magicsock: rearrange TwoDevicePing test for future natlab tests.
Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
parent
b3d65ba943
commit
1f7b1a4c6c
@ -337,14 +337,52 @@ func makeNestable(t *testing.T) (logf logger.Logf, setT func(t *testing.T)) {
|
||||
|
||||
func TestTwoDevicePing(t *testing.T) {
|
||||
t.Run("real", func(t *testing.T) {
|
||||
testTwoDevicePing(t, false)
|
||||
l, ip := nettype.Std{}, netaddr.IPv4(127, 0, 0, 1)
|
||||
n := &devices{
|
||||
m1: l,
|
||||
m1IP: ip,
|
||||
m2: l,
|
||||
m2IP: ip,
|
||||
stun: l,
|
||||
stunIP: ip,
|
||||
}
|
||||
testTwoDevicePing(t, n)
|
||||
})
|
||||
t.Run("natlab", func(t *testing.T) {
|
||||
testTwoDevicePing(t, true)
|
||||
t.Run("simple internet", func(t *testing.T) {
|
||||
mstun := &natlab.Machine{Name: "stun"}
|
||||
m1 := &natlab.Machine{Name: "m1"}
|
||||
m2 := &natlab.Machine{Name: "m2"}
|
||||
inet := natlab.NewInternet()
|
||||
sif := mstun.Attach("eth0", inet)
|
||||
m1if := m1.Attach("eth0", inet)
|
||||
m2if := m2.Attach("eth0", inet)
|
||||
|
||||
n := &devices{
|
||||
m1: m1,
|
||||
m1IP: m1if.V4(),
|
||||
m2: m2,
|
||||
m2IP: m2if.V4(),
|
||||
stun: mstun,
|
||||
stunIP: sif.V4(),
|
||||
}
|
||||
testTwoDevicePing(t, n)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func testTwoDevicePing(t *testing.T, useNatlab bool) {
|
||||
type devices struct {
|
||||
m1 nettype.PacketListener
|
||||
m1IP netaddr.IP
|
||||
|
||||
m2 nettype.PacketListener
|
||||
m2IP netaddr.IP
|
||||
|
||||
stun nettype.PacketListener
|
||||
stunIP netaddr.IP
|
||||
}
|
||||
|
||||
func testTwoDevicePing(t *testing.T, d *devices) {
|
||||
tstest.PanicOnLog()
|
||||
rc := tstest.NewResourceCheck()
|
||||
defer rc.Assert(t)
|
||||
@ -356,30 +394,7 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) {
|
||||
derpServer, derpAddr, derpCleanupFn := runDERP(t, logf)
|
||||
defer derpCleanupFn()
|
||||
|
||||
packetConn := func(m *natlab.Machine) nettype.PacketListener {
|
||||
if m == nil {
|
||||
return nettype.Std{}
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
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)
|
||||
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))
|
||||
stunAddr, stunCleanupFn := stuntest.ServeWithPacketListener(t, d.stun)
|
||||
defer stunCleanupFn()
|
||||
|
||||
derpMap := &tailcfg.DERPMap{
|
||||
@ -396,7 +411,7 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) {
|
||||
IPv6: "none",
|
||||
STUNPort: stunAddr.Port,
|
||||
DERPTestPort: derpAddr.Port,
|
||||
STUNTestIP: stunTestIP,
|
||||
STUNTestIP: d.stunIP.String(),
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -406,7 +421,7 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) {
|
||||
epCh1 := make(chan []string, 16)
|
||||
conn1, err := NewConn(Options{
|
||||
Logf: logger.WithPrefix(logf, "conn1: "),
|
||||
PacketListener: packetConn(machine1),
|
||||
PacketListener: d.m1,
|
||||
EndpointsFunc: func(eps []string) {
|
||||
epCh1 <- eps
|
||||
},
|
||||
@ -421,7 +436,7 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) {
|
||||
epCh2 := make(chan []string, 16)
|
||||
conn2, err := NewConn(Options{
|
||||
Logf: logger.WithPrefix(logf, "conn2: "),
|
||||
PacketListener: packetConn(machine2),
|
||||
PacketListener: d.m2,
|
||||
EndpointsFunc: func(eps []string) {
|
||||
epCh2 <- eps
|
||||
},
|
||||
@ -434,8 +449,8 @@ func testTwoDevicePing(t *testing.T, useNatlab bool) {
|
||||
conn2.SetDERPMap(derpMap)
|
||||
|
||||
addrs := []netaddr.IPPort{
|
||||
{IP: conn1IP, Port: conn1.LocalPort()},
|
||||
{IP: conn2IP, Port: conn2.LocalPort()},
|
||||
{IP: d.m1IP, Port: conn1.LocalPort()},
|
||||
{IP: d.m2IP, Port: conn2.LocalPort()},
|
||||
}
|
||||
cfgs := makeConfigs(t, addrs)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user