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 }