github.com/MetalBlockchain/metalgo@v1.11.9/vms/proposervm/block/block_test.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package block
     5  
     6  import (
     7  	"bytes"
     8  	"testing"
     9  	"time"
    10  
    11  	"github.com/stretchr/testify/require"
    12  
    13  	"github.com/MetalBlockchain/metalgo/ids"
    14  	"github.com/MetalBlockchain/metalgo/utils/units"
    15  )
    16  
    17  func equal(require *require.Assertions, want, have Block) {
    18  	require.Equal(want.ID(), have.ID())
    19  	require.Equal(want.ParentID(), have.ParentID())
    20  	require.Equal(want.Block(), have.Block())
    21  	require.Equal(want.Bytes(), have.Bytes())
    22  
    23  	signedWant, wantIsSigned := want.(SignedBlock)
    24  	signedHave, haveIsSigned := have.(SignedBlock)
    25  	require.Equal(wantIsSigned, haveIsSigned)
    26  	if !wantIsSigned {
    27  		return
    28  	}
    29  
    30  	require.Equal(signedWant.PChainHeight(), signedHave.PChainHeight())
    31  	require.Equal(signedWant.Timestamp(), signedHave.Timestamp())
    32  	require.Equal(signedWant.Proposer(), signedHave.Proposer())
    33  }
    34  
    35  func TestBlockSizeLimit(t *testing.T) {
    36  	require := require.New(t)
    37  
    38  	parentID := ids.ID{1}
    39  	timestamp := time.Unix(123, 0)
    40  	pChainHeight := uint64(2)
    41  	innerBlockBytes := bytes.Repeat([]byte{0}, 270*units.KiB)
    42  
    43  	// with the large limit, it should be able to build large blocks
    44  	_, err := BuildUnsigned(parentID, timestamp, pChainHeight, innerBlockBytes)
    45  	require.NoError(err)
    46  }