wgengine/wgcfg: make device test endpoint-format-agnostic
By using conn.NewDefaultBind, this test requires that our endpoints be comprehensible to wireguard-go. Instead, use a no-op bind that treats endpoints as opaque strings. Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>pull/1874/head
parent
73ad1f804b
commit
9bce1b7fc1
|
@ -8,6 +8,7 @@ import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"io"
|
"io"
|
||||||
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -56,8 +57,8 @@ func TestDeviceConfig(t *testing.T) {
|
||||||
}},
|
}},
|
||||||
}
|
}
|
||||||
|
|
||||||
device1 := device.NewDevice(newNilTun(), conn.NewDefaultBind(), device.NewLogger(device.LogLevelError, "device1"))
|
device1 := device.NewDevice(newNilTun(), new(noopBind), device.NewLogger(device.LogLevelError, "device1"))
|
||||||
device2 := device.NewDevice(newNilTun(), conn.NewDefaultBind(), device.NewLogger(device.LogLevelError, "device2"))
|
device2 := device.NewDevice(newNilTun(), new(noopBind), device.NewLogger(device.LogLevelError, "device2"))
|
||||||
defer device1.Close()
|
defer device1.Close()
|
||||||
defer device2.Close()
|
defer device2.Close()
|
||||||
|
|
||||||
|
@ -237,3 +238,26 @@ func (t *nilTun) Close() error {
|
||||||
close(t.closed)
|
close(t.closed)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A noopBind is a conn.Bind that does no actual binding work.
|
||||||
|
type noopBind struct{}
|
||||||
|
|
||||||
|
func (noopBind) Open(port uint16) (fns []conn.ReceiveFunc, actualPort uint16, err error) {
|
||||||
|
return nil, 1, nil
|
||||||
|
}
|
||||||
|
func (noopBind) Close() error { return nil }
|
||||||
|
func (noopBind) SetMark(mark uint32) error { return nil }
|
||||||
|
func (noopBind) Send(b []byte, ep conn.Endpoint) error { return nil }
|
||||||
|
func (noopBind) ParseEndpoint(s string) (conn.Endpoint, error) {
|
||||||
|
return dummyEndpoint(s), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// A dummyEndpoint is a string holding the endpoint destination.
|
||||||
|
type dummyEndpoint string
|
||||||
|
|
||||||
|
func (e dummyEndpoint) ClearSrc() {}
|
||||||
|
func (e dummyEndpoint) SrcToString() string { return "" }
|
||||||
|
func (e dummyEndpoint) DstToString() string { return string(e) }
|
||||||
|
func (e dummyEndpoint) DstToBytes() []byte { return nil }
|
||||||
|
func (e dummyEndpoint) DstIP() net.IP { return nil }
|
||||||
|
func (dummyEndpoint) SrcIP() net.IP { return nil }
|
||||||
|
|
Loading…
Reference in New Issue