57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package node
|
|
|
|
import (
|
|
"net/netip"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestBinWriteRead(t *testing.T) {
|
|
buf := make([]byte, 1024)
|
|
|
|
type Item struct {
|
|
Type byte
|
|
TraceID uint64
|
|
Addrs [8]netip.AddrPort
|
|
DestAddr netip.AddrPort
|
|
}
|
|
|
|
in := Item{
|
|
1,
|
|
2,
|
|
[8]netip.AddrPort{},
|
|
netip.AddrPortFrom(netip.AddrFrom4([4]byte{1, 2, 3, 4}), 22),
|
|
}
|
|
|
|
in.Addrs[0] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{0, 1, 2, 3}), 20)
|
|
in.Addrs[2] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 3, 4, 5}), 22)
|
|
in.Addrs[3] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 3, 4, 3}), 23)
|
|
in.Addrs[4] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 3, 4, 4}), 24)
|
|
in.Addrs[5] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 3, 4, 5}), 25)
|
|
in.Addrs[6] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{2, 3, 4, 6}), 26)
|
|
in.Addrs[7] = netip.AddrPortFrom(netip.AddrFrom4([4]byte{7, 8, 9, 7}), 27)
|
|
|
|
buf = newBinWriter(buf).
|
|
Byte(in.Type).
|
|
Uint64(in.TraceID).
|
|
AddrPort(in.DestAddr).
|
|
AddrPortArray(in.Addrs).
|
|
Build()
|
|
|
|
out := Item{}
|
|
|
|
err := newBinReader(buf).
|
|
Byte(&out.Type).
|
|
Uint64(&out.TraceID).
|
|
AddrPort(&out.DestAddr).
|
|
AddrPortArray(&out.Addrs).
|
|
Error()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !reflect.DeepEqual(in, out) {
|
|
t.Fatal(in, out)
|
|
}
|
|
}
|