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) } }