github.com/Finschia/finschia-sdk@v0.48.1/x/staking/bench_test.go (about)

     1  package staking_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Finschia/finschia-sdk/crypto/keys/ed25519"
     7  	sdk "github.com/Finschia/finschia-sdk/types"
     8  	"github.com/Finschia/finschia-sdk/x/staking"
     9  	"github.com/Finschia/finschia-sdk/x/staking/teststaking"
    10  	"github.com/Finschia/finschia-sdk/x/staking/types"
    11  )
    12  
    13  func BenchmarkValidateGenesis10Validators(b *testing.B) {
    14  	benchmarkValidateGenesis(b, 10)
    15  }
    16  
    17  func BenchmarkValidateGenesis100Validators(b *testing.B) {
    18  	benchmarkValidateGenesis(b, 100)
    19  }
    20  
    21  func BenchmarkValidateGenesis400Validators(b *testing.B) {
    22  	benchmarkValidateGenesis(b, 400)
    23  }
    24  
    25  func benchmarkValidateGenesis(b *testing.B, n int) {
    26  	b.ReportAllocs()
    27  
    28  	validators := make([]types.Validator, 0, n)
    29  	addressL, pubKeyL := makeRandomAddressesAndPublicKeys(n)
    30  	for i := 0; i < n; i++ {
    31  		addr, pubKey := addressL[i], pubKeyL[i]
    32  		validator := teststaking.NewValidator(b, addr, pubKey)
    33  		ni := int64(i + 1)
    34  		validator.Tokens = sdk.NewInt(ni)
    35  		validator.DelegatorShares = sdk.NewDec(ni)
    36  		validators = append(validators, validator)
    37  	}
    38  
    39  	b.ResetTimer()
    40  	for i := 0; i < b.N; i++ {
    41  		genesisState := types.DefaultGenesisState()
    42  		genesisState.Validators = validators
    43  		if err := staking.ValidateGenesis(genesisState); err != nil {
    44  			b.Fatal(err)
    45  		}
    46  	}
    47  }
    48  
    49  func makeRandomAddressesAndPublicKeys(n int) (accL []sdk.ValAddress, pkL []*ed25519.PubKey) {
    50  	for i := 0; i < n; i++ {
    51  		pk := ed25519.GenPrivKey().PubKey().(*ed25519.PubKey)
    52  		pkL = append(pkL, pk)
    53  		accL = append(accL, sdk.ValAddress(pk.Address()))
    54  	}
    55  	return accL, pkL
    56  }