diff --git a/device/device_test.go b/device/device_test.go index 01ee2ac..1716f92 100644 --- a/device/device_test.go +++ b/device/device_test.go @@ -314,30 +314,6 @@ func TestConcurrencySafety(t *testing.T) { close(done) } -func assertNil(t *testing.T, err error) { - if err != nil { - t.Fatal(err) - } -} - -func assertEqual(t *testing.T, a, b []byte) { - if !bytes.Equal(a, b) { - t.Fatal(a, "!=", b) - } -} - -func randDevice(t *testing.T) *Device { - sk, err := newPrivateKey() - if err != nil { - t.Fatal(err) - } - tun := newDummyTUN("dummy") - logger := NewLogger(LogLevelError, "") - device := NewDevice(tun, conn.NewDefaultBind(), logger) - device.SetPrivateKey(sk) - return device -} - func BenchmarkLatency(b *testing.B) { pair := genTestPair(b) diff --git a/device/noise_test.go b/device/noise_test.go index dbf2c7d..807ca2d 100644 --- a/device/noise_test.go +++ b/device/noise_test.go @@ -9,6 +9,9 @@ import ( "bytes" "encoding/binary" "testing" + + "golang.zx2c4.com/wireguard/conn" + "golang.zx2c4.com/wireguard/tun/tuntest" ) func TestCurveWrappers(t *testing.T) { @@ -29,6 +32,30 @@ func TestCurveWrappers(t *testing.T) { } } +func randDevice(t *testing.T) *Device { + sk, err := newPrivateKey() + if err != nil { + t.Fatal(err) + } + tun := tuntest.NewChannelTUN() + logger := NewLogger(LogLevelError, "") + device := NewDevice(tun.TUN(), conn.NewDefaultBind(), logger) + device.SetPrivateKey(sk) + return device +} + +func assertNil(t *testing.T, err error) { + if err != nil { + t.Fatal(err) + } +} + +func assertEqual(t *testing.T, a, b []byte) { + if !bytes.Equal(a, b) { + t.Fatal(a, "!=", b) + } +} + func TestNoiseHandshake(t *testing.T) { dev1 := randDevice(t) dev2 := randDevice(t) diff --git a/device/tun_test.go b/device/tun_test.go deleted file mode 100644 index 2ccae62..0000000 --- a/device/tun_test.go +++ /dev/null @@ -1,56 +0,0 @@ -/* SPDX-License-Identifier: MIT - * - * Copyright (C) 2017-2021 WireGuard LLC. All Rights Reserved. - */ - -package device - -import ( - "errors" - "os" - - "golang.zx2c4.com/wireguard/tun" -) - -// newDummyTUN creates a dummy TUN device with the specified name. -func newDummyTUN(name string) tun.Device { - return &dummyTUN{ - name: name, - packets: make(chan []byte, 100), - events: make(chan tun.Event, 10), - } -} - -// A dummyTUN is a tun.Device which is used in unit tests. -type dummyTUN struct { - name string - mtu int - packets chan []byte - events chan tun.Event -} - -func (d *dummyTUN) Events() chan tun.Event { return d.events } -func (*dummyTUN) File() *os.File { return nil } -func (*dummyTUN) Flush() error { return nil } -func (d *dummyTUN) MTU() (int, error) { return d.mtu, nil } -func (d *dummyTUN) Name() (string, error) { return d.name, nil } - -func (d *dummyTUN) Close() error { - close(d.events) - close(d.packets) - return nil -} - -func (d *dummyTUN) Read(b []byte, offset int) (int, error) { - buf, ok := <-d.packets - if !ok { - return 0, errors.New("device closed") - } - copy(b[offset:], buf) - return len(buf), nil -} - -func (d *dummyTUN) Write(b []byte, offset int) (int, error) { - d.packets <- b[offset:] - return len(b), nil -}