Co-authored-by: jdl <jdl@desktop> Co-authored-by: jdl <jdl@crumpington.com> Reviewed-on: #3
67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
package peer
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"net/netip"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestSynPacket(t *testing.T) {
|
|
p := packetSyn{
|
|
TraceID: newTraceID(),
|
|
//SentAt: time.Now().UnixMilli(),
|
|
//SharedKeyType: 1,
|
|
Direct: true,
|
|
}
|
|
rand.Read(p.SharedKey[:])
|
|
|
|
p.PossibleAddrs[0] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{1, 2, 3, 4}), 234)
|
|
p.PossibleAddrs[1] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 2, 3, 4}), 12399)
|
|
p.PossibleAddrs[2] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{3, 2, 3, 4}), 60000)
|
|
|
|
buf := p.Marshal(newBuf())
|
|
p2, err := parsePacketSyn(buf)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(p, p2) {
|
|
t.Fatal(p2)
|
|
}
|
|
}
|
|
|
|
func TestAckPacket(t *testing.T) {
|
|
p := packetAck{
|
|
TraceID: newTraceID(),
|
|
ToAddr: netip.AddrPortFrom(netip.AddrFrom4([4]byte{1, 2, 3, 4}), 234),
|
|
}
|
|
|
|
p.PossibleAddrs[0] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{8, 2, 3, 4}), 100)
|
|
p.PossibleAddrs[1] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 2, 3, 4}), 12399)
|
|
p.PossibleAddrs[2] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{3, 2, 3, 4}), 60000)
|
|
|
|
buf := p.Marshal(newBuf())
|
|
p2, err := parsePacketAck(buf)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(p, p2) {
|
|
t.Fatal(p2)
|
|
}
|
|
}
|
|
|
|
func TestProbePacket(t *testing.T) {
|
|
p := packetProbe{
|
|
TraceID: newTraceID(),
|
|
}
|
|
|
|
buf := p.Marshal(newBuf())
|
|
p2, err := parsePacketProbe(buf)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(p, p2) {
|
|
t.Fatal(p2)
|
|
}
|
|
}
|