tstest/natlab: allow sensible default construction of networks.

Add a test for LAN->LAN traffic.

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson
2020-07-03 00:52:58 +00:00
parent 9cd4e65191
commit f2e5da916a
2 changed files with 68 additions and 12 deletions
+43 -3
View File
@@ -46,9 +46,6 @@ func TestSendPacket(t *testing.T) {
ifFoo := foo.Attach("eth0", internet)
ifBar := bar.Attach("enp0s1", internet)
t.Logf("foo IP: %v, %v", ifFoo.V4(), ifFoo.V6())
t.Logf("bar IP: %v, %v", ifBar.V4(), ifBar.V6())
fooAddr := netaddr.IPPort{IP: ifFoo.V4(), Port: 123}
barAddr := netaddr.IPPort{IP: ifBar.V4(), Port: 456}
@@ -79,3 +76,46 @@ func TestSendPacket(t *testing.T) {
t.Errorf("addr = %q; want %q", addr, fooAddr)
}
}
func TestLAN(t *testing.T) {
// TODO: very duplicate-ey with the previous test, but important
// right now to test explicit construction of Networks.
lan := Network{
Name: "lan1",
Prefix4: mustPrefix("192.168.0.0/24"),
}
foo := NewMachine("foo")
bar := NewMachine("bar")
ifFoo := foo.Attach("eth0", &lan)
ifBar := bar.Attach("eth0", &lan)
fooPC, err := foo.ListenPacket("udp4", ":123")
if err != nil {
t.Fatal(err)
}
barPC, err := bar.ListenPacket("udp4", ":456")
if err != nil {
t.Fatal(err)
}
const msg = "message"
barAddr := netaddr.IPPort{IP: ifBar.V4(), Port: 456}
if _, err := fooPC.WriteTo([]byte(msg), barAddr.UDPAddr()); err != nil {
t.Fatal(err)
}
buf := make([]byte, 1500)
n, addr, err := barPC.ReadFrom(buf)
if err != nil {
t.Fatal(err)
}
buf = buf[:n]
if string(buf) != msg {
t.Errorf("read %q; want %q", buf, msg)
}
fooAddr := netaddr.IPPort{IP: ifFoo.V4(), Port: 123}
if addr.String() != fooAddr.String() {
t.Errorf("addr = %q; want %q", addr, fooAddr)
}
}