github.com/vipernet-xyz/tm@v0.34.24/test/loadtime/payload/payload_test.go (about) 1 package payload_test 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/google/uuid" 8 9 "github.com/vipernet-xyz/tm/test/loadtime/payload" 10 ) 11 12 const payloadSizeTarget = 1024 // 1kb 13 14 func TestSize(t *testing.T) { 15 s, err := payload.MaxUnpaddedSize() 16 if err != nil { 17 t.Fatalf("calculating max unpadded size %s", err) 18 } 19 if s > payloadSizeTarget { 20 t.Fatalf("unpadded payload size %d exceeds target %d", s, payloadSizeTarget) 21 } 22 } 23 24 func TestRoundTrip(t *testing.T) { 25 const ( 26 testConns = 512 27 testRate = 4 28 ) 29 testID := [16]byte(uuid.New()) 30 b, err := payload.NewBytes(&payload.Payload{ 31 Size: payloadSizeTarget, 32 Connections: testConns, 33 Rate: testRate, 34 Id: testID[:], 35 }) 36 if err != nil { 37 t.Fatalf("generating payload %s", err) 38 } 39 if len(b) < payloadSizeTarget { 40 t.Fatalf("payload size in bytes %d less than expected %d", len(b), payloadSizeTarget) 41 } 42 p, err := payload.FromBytes(b) 43 if err != nil { 44 t.Fatalf("reading payload %s", err) 45 } 46 if p.Size != payloadSizeTarget { 47 t.Fatalf("payload size value %d does not match expected %d", p.Size, payloadSizeTarget) 48 } 49 if p.Connections != testConns { 50 t.Fatalf("payload connections value %d does not match expected %d", p.Connections, testConns) 51 } 52 if p.Rate != testRate { 53 t.Fatalf("payload rate value %d does not match expected %d", p.Rate, testRate) 54 } 55 if !bytes.Equal(p.Id, testID[:]) { 56 t.Fatalf("payload ID value %d does not match expected %d", p.Id, testID) 57 } 58 }