From 6cecaf31575d77d8f30be65a0a5d34055ee220a4 Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Thu, 8 Mar 2018 16:44:27 +0100 Subject: Begin work on full device<->device unit-test To simulate a full interaction between two WireGuard instances without networking, using dummy instances of the interfaces --- bind_test.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 bind_test.go (limited to 'bind_test.go') diff --git a/bind_test.go b/bind_test.go new file mode 100644 index 0000000..41c4225 --- /dev/null +++ b/bind_test.go @@ -0,0 +1,50 @@ +package main + +import "errors" + +type DummyDatagram struct { + msg []byte + endpoint Endpoint + world bool // better type +} + +type DummyBind struct { + in6 chan DummyDatagram + ou6 chan DummyDatagram + in4 chan DummyDatagram + ou4 chan DummyDatagram + closed bool +} + +func (b *DummyBind) SetMark(v uint32) error { + return nil +} + +func (b *DummyBind) ReceiveIPv6(buff []byte) (int, Endpoint, error) { + datagram, ok := <-b.in6 + if !ok { + return 0, nil, errors.New("closed") + } + copy(buff, datagram.msg) + return len(datagram.msg), datagram.endpoint, nil +} + +func (b *DummyBind) ReceiveIPv4(buff []byte) (int, Endpoint, error) { + datagram, ok := <-b.in4 + if !ok { + return 0, nil, errors.New("closed") + } + copy(buff, datagram.msg) + return len(datagram.msg), datagram.endpoint, nil +} + +func (b *DummyBind) Close() error { + close(b.in6) + close(b.in4) + b.closed = true + return nil +} + +func (b *DummyBind) Send(buff []byte, end Endpoint) error { + return nil +} -- cgit v1.2.3-59-g8ed1b