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  }