summaryrefslogtreecommitdiffhomepage
path: root/src/helper_test.go
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2017-06-28 23:45:45 +0200
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2017-06-28 23:45:45 +0200
commit1f0976a26c1d0a6b5eb2c0aa993f12d89f96eed2 (patch)
tree36771e8468214583a5c3f3441b36662c4108a58c /src/helper_test.go
parent8236f3afa2eca0aae6c5da9560301c04d882c81b (diff)
Work on UAPI
Cross-platform API (get operation) Handshake initiation creation process Outbound packet flow Fixes from code-review
Diffstat (limited to 'src/helper_test.go')
-rw-r--r--src/helper_test.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/helper_test.go b/src/helper_test.go
new file mode 100644
index 0000000..3a5c331
--- /dev/null
+++ b/src/helper_test.go
@@ -0,0 +1,64 @@
+package main
+
+import (
+ "bytes"
+ "testing"
+)
+
+/* Helpers for writing unit tests
+ */
+
+type DummyTUN struct {
+ name string
+ mtu uint
+ packets chan []byte
+}
+
+func (tun *DummyTUN) Name() string {
+ return tun.name
+}
+
+func (tun *DummyTUN) MTU() uint {
+ return tun.mtu
+}
+
+func (tun *DummyTUN) Write(d []byte) (int, error) {
+ tun.packets <- d
+ return len(d), nil
+}
+
+func (tun *DummyTUN) Read(d []byte) (int, error) {
+ t := <-tun.packets
+ copy(d, t)
+ return len(t), nil
+}
+
+func CreateDummyTUN(name string) (TUNDevice, error) {
+ var dummy DummyTUN
+ dummy.mtu = 1024
+ dummy.packets = make(chan []byte, 100)
+ return &dummy, nil
+}
+
+func assertNil(t *testing.T, err error) {
+ if err != nil {
+ t.Fatal(err)
+ }
+}
+
+func assertEqual(t *testing.T, a []byte, b []byte) {
+ if bytes.Compare(a, b) != 0 {
+ t.Fatal(a, "!=", b)
+ }
+}
+
+func randDevice(t *testing.T) *Device {
+ sk, err := newPrivateKey()
+ if err != nil {
+ t.Fatal(err)
+ }
+ tun, _ := CreateDummyTUN("dummy")
+ device := NewDevice(tun)
+ device.SetPrivateKey(sk)
+ return device
+}