2019-01-02 00:55:51 +00:00
|
|
|
/* SPDX-License-Identifier: MIT
|
2018-05-03 13:04:00 +00:00
|
|
|
*
|
2019-01-02 00:55:51 +00:00
|
|
|
* Copyright (C) 2017-2019 WireGuard LLC. All Rights Reserved.
|
2018-05-03 13:04:00 +00:00
|
|
|
*/
|
|
|
|
|
2019-03-03 03:04:41 +00:00
|
|
|
package device
|
2018-03-08 15:44:27 +00:00
|
|
|
|
|
|
|
/* Create two device instances and simulate full WireGuard interaction
|
|
|
|
* without network dependencies
|
|
|
|
*/
|
|
|
|
|
2019-05-29 16:18:20 +00:00
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"testing"
|
|
|
|
)
|
2018-03-08 15:44:27 +00:00
|
|
|
|
|
|
|
func TestDevice(t *testing.T) {
|
|
|
|
|
|
|
|
// prepare tun devices for generating traffic
|
|
|
|
|
2019-05-29 16:18:20 +00:00
|
|
|
tun1 := newDummyTUN("tun1")
|
|
|
|
tun2 := newDummyTUN("tun2")
|
2018-03-08 15:44:27 +00:00
|
|
|
|
2018-05-21 03:18:25 +00:00
|
|
|
_ = tun1
|
|
|
|
_ = tun2
|
2018-03-08 15:44:27 +00:00
|
|
|
|
|
|
|
// prepare endpoints
|
|
|
|
|
|
|
|
end1, err := CreateDummyEndpoint()
|
|
|
|
if err != nil {
|
|
|
|
t.Error("failed to create endpoint:", err.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
end2, err := CreateDummyEndpoint()
|
|
|
|
if err != nil {
|
|
|
|
t.Error("failed to create endpoint:", err.Error())
|
|
|
|
}
|
|
|
|
|
2018-05-21 03:18:25 +00:00
|
|
|
_ = end1
|
|
|
|
_ = end2
|
2018-03-08 15:44:27 +00:00
|
|
|
|
|
|
|
// create binds
|
|
|
|
|
|
|
|
}
|
2019-05-29 16:18:20 +00:00
|
|
|
|
|
|
|
func randDevice(t *testing.T) *Device {
|
|
|
|
sk, err := newPrivateKey()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
tun := newDummyTUN("dummy")
|
|
|
|
logger := NewLogger(LogLevelError, "")
|
|
|
|
device := NewDevice(tun, 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 []byte, b []byte) {
|
|
|
|
if bytes.Compare(a, b) != 0 {
|
|
|
|
t.Fatal(a, "!=", b)
|
|
|
|
}
|
|
|
|
}
|