refactor-for-testability (#3)
Co-authored-by: jdl <jdl@desktop> Co-authored-by: jdl <jdl@crumpington.com> Reviewed-on: #3
This commit is contained in:
66
peer/packets_test.go
Normal file
66
peer/packets_test.go
Normal file
@@ -0,0 +1,66 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user