testsuite

package
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BlockWithPrevCert added in v1.4.0

func BlockWithPrevCert(cert *certificate.BlockCertificate) func(bm *BlockMaker)

BlockWithPrevCert sets previous block certificate to the block.

func BlockWithPrevHash added in v1.4.0

func BlockWithPrevHash(h hash.Hash) func(bm *BlockMaker)

BlockWithPrevHash sets previous block hash to the block.

func BlockWithProposer added in v1.4.0

func BlockWithProposer(addr crypto.Address) func(bm *BlockMaker)

BlockWithProposer sets proposer address to the block.

func BlockWithSeed added in v1.4.0

func BlockWithSeed(seed sortition.VerifiableSeed) func(bm *BlockMaker)

BlockWithSeed sets verifiable seed to the block.

func BlockWithStateHash added in v1.4.0

func BlockWithStateHash(h hash.Hash) func(bm *BlockMaker)

BlockWithStateHash sets state hash to the block.

func BlockWithTime added in v1.4.0

func BlockWithTime(t time.Time) func(bm *BlockMaker)

BlockWithTime sets block creation time to the block.

func BlockWithTransactions added in v1.4.0

func BlockWithTransactions(txs block.Txs) func(bm *BlockMaker)

BlockWithTransactions adds transactions to the block.

func BlockWithVersion added in v1.4.0

func BlockWithVersion(ver uint8) func(bm *BlockMaker)

BlockWithVersion sets version to the block.

func GenerateSeed added in v0.15.0

func GenerateSeed() int64

func TransactionWithAmount added in v1.4.0

func TransactionWithAmount(amt amount.Amount) func(tm *TransactionMaker)

TransactionWithAmount sets amount to the transaction.

func TransactionWithBLSSigner added in v1.5.0

func TransactionWithBLSSigner(signer *bls.PrivateKey) func(tm *TransactionMaker)

TransactionWithBLSSigner sets the BLS signer to sign the test transaction.

func TransactionWithEd25519Signer added in v1.5.0

func TransactionWithEd25519Signer(signer *ed25519.PrivateKey) func(tm *TransactionMaker)

TransactionWithEd25519Signer sets the Ed25519 signer to sign the test transaction.

func TransactionWithFee added in v1.4.0

func TransactionWithFee(fee amount.Amount) func(tm *TransactionMaker)

TransactionWithFee sets fee to the transaction.

func TransactionWithLockTime added in v1.4.0

func TransactionWithLockTime(lockTime uint32) func(tm *TransactionMaker)

TransactionWithLockTime sets lock-time to the transaction.

func TransactionWithValidatorPublicKey added in v1.6.0

func TransactionWithValidatorPublicKey(pubKey *bls.PublicKey) func(tm *TransactionMaker)

TransactionWithValidatorPublicKey sets the Validator's public key for the Bond transaction.

func WithProposerKey added in v1.6.0

func WithProposerKey(key *bls.ValidatorKey) func(pm *ProposalMaker)

WithProposerKey sets the private key of the proposer.

Types

type BlockMaker added in v1.4.0

type BlockMaker struct {
	Version   uint8
	Txs       block.Txs
	Proposer  crypto.Address
	Time      time.Time
	StateHash hash.Hash
	PrevHash  hash.Hash
	Seed      sortition.VerifiableSeed
	PrevCert  *certificate.BlockCertificate
}

type OverrideStringer added in v0.17.0

type OverrideStringer struct {
	// contains filtered or unexported fields
}

func NewOverrideStringer added in v0.17.0

func NewOverrideStringer(name string, obj fmt.Stringer) *OverrideStringer

func (*OverrideStringer) String added in v0.17.0

func (o *OverrideStringer) String() string

type ProposalMaker added in v1.6.0

type ProposalMaker struct {
	ProposerKey *bls.ValidatorKey
}

type TestSuite

type TestSuite struct {
	Seed int64
	Rand *rand.Rand
}

TestSuite provides a set of helper functions for testing purposes. All the random values are generated based on a logged seed. By using a pre-generated seed, it is possible to reproduce failed tests by re-evaluating all the random values. This helps in identifying and debugging failures in testing conditions.

func NewTestSuite

func NewTestSuite(t *testing.T) *TestSuite

NewTestSuite creates a new TestSuite by generating new seed.

func NewTestSuiteFromSeed added in v1.6.0

func NewTestSuiteFromSeed(seed int64) *TestSuite

NewTestSuiteFromSeed creates a new TestSuite with the given seed.

func (*TestSuite) DecodingHex

func (*TestSuite) DecodingHex(in string) []byte

DecodingHex decodes the input string from hexadecimal format and returns the resulting byte slice.

func (*TestSuite) GenerateTestAccount

func (ts *TestSuite) GenerateTestAccount(number int32) (*account.Account, crypto.Address)

GenerateTestAccount generates an account for testing purposes.

func (*TestSuite) GenerateTestBlock

func (ts *TestSuite) GenerateTestBlock(height uint32, options ...func(bm *BlockMaker)) (
	*block.Block, *certificate.BlockCertificate,
)

GenerateTestBlock generates a block for testing purposes with optional configuration.

func (*TestSuite) GenerateTestBlockCertificate added in v1.2.0

func (ts *TestSuite) GenerateTestBlockCertificate(height uint32) *certificate.BlockCertificate

GenerateTestBlockCertificate generates a block certificate for testing purposes.

func (*TestSuite) GenerateTestBondTx

func (ts *TestSuite) GenerateTestBondTx(options ...func(tm *TransactionMaker)) *tx.Tx

GenerateTestBondTx generates a bond transaction for testing purposes.

func (*TestSuite) GenerateTestCommittee

func (ts *TestSuite) GenerateTestCommittee(num int) (committee.Committee, []*bls.ValidatorKey)

GenerateTestCommittee generates a committee for testing purposes. All committee members have the same power.

func (*TestSuite) GenerateTestPrecommitVote

func (ts *TestSuite) GenerateTestPrecommitVote(height uint32, round int16) (*vote.Vote, *bls.ValidatorKey)

GenerateTestPrecommitVote generates a precommit vote for testing purposes.

func (*TestSuite) GenerateTestPrepareCertificate added in v1.2.0

func (ts *TestSuite) GenerateTestPrepareCertificate(height uint32) *certificate.VoteCertificate

GenerateTestPrepareCertificate generates a prepare certificate for testing purposes.

func (*TestSuite) GenerateTestPrepareVote

func (ts *TestSuite) GenerateTestPrepareVote(height uint32, round int16) (*vote.Vote, *bls.ValidatorKey)

GenerateTestPrepareVote generates a prepare vote for testing purposes.

func (*TestSuite) GenerateTestProposal

func (ts *TestSuite) GenerateTestProposal(height uint32, round int16,
	options ...func(pmk *ProposalMaker),
) *proposal.Proposal

GenerateTestProposal generates a proposal for testing purposes.

func (*TestSuite) GenerateTestSortitionTx

func (ts *TestSuite) GenerateTestSortitionTx(options ...func(tm *TransactionMaker)) *tx.Tx

GenerateTestSortitionTx generates a sortition transaction for testing purposes.

func (*TestSuite) GenerateTestTransferTx

func (ts *TestSuite) GenerateTestTransferTx(options ...func(tm *TransactionMaker)) *tx.Tx

GenerateTestTransferTx generates a transfer transaction for testing purposes.

func (*TestSuite) GenerateTestUnbondTx

func (ts *TestSuite) GenerateTestUnbondTx(options ...func(tm *TransactionMaker)) *tx.Tx

GenerateTestUnbondTx generates an unbond transaction for testing purposes.

func (*TestSuite) GenerateTestValidator

func (ts *TestSuite) GenerateTestValidator(number int32) (*validator.Validator, *bls.ValidatorKey)

GenerateTestValidator generates a validator for testing purposes.

func (*TestSuite) GenerateTestWithdrawTx

func (ts *TestSuite) GenerateTestWithdrawTx(options ...func(tm *TransactionMaker)) *tx.Tx

GenerateTestWithdrawTx generates a withdraw transaction for testing purposes.

func (*TestSuite) HelperSignProposal added in v0.15.0

func (*TestSuite) HelperSignProposal(valKey *bls.ValidatorKey, p *proposal.Proposal)

func (*TestSuite) HelperSignTransaction added in v0.15.0

func (*TestSuite) HelperSignTransaction(prv crypto.PrivateKey, trx *tx.Tx)

func (*TestSuite) HelperSignVote added in v0.15.0

func (*TestSuite) HelperSignVote(valKey *bls.ValidatorKey, v *vote.Vote)

func (*TestSuite) NewBlockMaker added in v1.4.0

func (ts *TestSuite) NewBlockMaker() *BlockMaker

NewBlockMaker creates a new BlockMaker instance.

func (*TestSuite) NewProposalMaker added in v1.6.0

func (ts *TestSuite) NewProposalMaker() *ProposalMaker

NewProposalMaker creates a new NewProposalMaker instance.

func (*TestSuite) NewTransactionMaker added in v1.4.0

func (ts *TestSuite) NewTransactionMaker() *TransactionMaker

NewTransactionMaker creates a new TransactionMaker instance.

func (*TestSuite) RandAccAddress added in v0.15.0

func (ts *TestSuite) RandAccAddress() crypto.Address

RandAccAddress generates a random account address for testing purposes.

func (*TestSuite) RandAmount added in v0.19.0

func (ts *TestSuite) RandAmount(max ...amount.Amount) amount.Amount

RandAmount returns a random amount between [1e9, max). If max is not set, it defaults to 1000e9.

func (*TestSuite) RandAmountRange added in v1.2.0

func (ts *TestSuite) RandAmountRange(min, max amount.Amount) amount.Amount

RandAmountRange returns a random amount between [min, max).

func (*TestSuite) RandBLSKeyPair added in v0.15.0

func (ts *TestSuite) RandBLSKeyPair() (*bls.PublicKey, *bls.PrivateKey)

RandBLSKeyPair generates a random BLS key pair for testing purposes.

func (*TestSuite) RandBLSSignature added in v0.15.0

func (ts *TestSuite) RandBLSSignature() *bls.Signature

RandBLSSignature generates a random BLS signature for testing purposes.

func (*TestSuite) RandBool added in v0.15.0

func (ts *TestSuite) RandBool() bool

RandBool returns a random boolean value.

func (*TestSuite) RandBytes added in v0.15.0

func (ts *TestSuite) RandBytes(length int) []byte

RandBytes returns a slice of random bytes of the given length.

func (*TestSuite) RandEd25519KeyPair added in v1.5.0

func (ts *TestSuite) RandEd25519KeyPair() (*ed25519.PublicKey, *ed25519.PrivateKey)

RandEd25519KeyPair generates a random Ed25519 key pair for testing purposes.

func (*TestSuite) RandEd25519Signature added in v1.5.0

func (ts *TestSuite) RandEd25519Signature() *ed25519.Signature

RandEd25519Signature generates a random BLS signature for testing purposes.

func (*TestSuite) RandFee added in v1.2.0

func (ts *TestSuite) RandFee(max ...amount.Amount) amount.Amount

RandFee returns a random fee between [1e7, max). If max is not set, it defaults to 1e9.

func (*TestSuite) RandHash added in v0.15.0

func (ts *TestSuite) RandHash() hash.Hash

RandHash generates a random hash for testing purposes.

func (*TestSuite) RandHeight added in v0.15.0

func (ts *TestSuite) RandHeight() uint32

RandHeight returns a random number between [1000, 1000000] for block height.

func (*TestSuite) RandInt

func (ts *TestSuite) RandInt(max int) int

RandInt returns a random int between 0 and max: [0, max).

func (*TestSuite) RandInt16

func (ts *TestSuite) RandInt16(max int16) int16

RandInt16 returns a random int16 between 0 and max: [0, max).

func (*TestSuite) RandInt16NonZero

func (ts *TestSuite) RandInt16NonZero(max int16) int16

RandInt16NonZero returns a random int16 between 1 and max+1: [1, max+1).

func (*TestSuite) RandInt32

func (ts *TestSuite) RandInt32(max int32) int32

RandInt32 returns a random int32 between 0 and max: [0, max).

func (*TestSuite) RandInt32NonZero

func (ts *TestSuite) RandInt32NonZero(max int32) int32

RandInt32NonZero returns a random int32 between 1 and max+1: [1, max+1).

func (*TestSuite) RandInt64

func (ts *TestSuite) RandInt64(max int64) int64

RandInt64 returns a random int64 between 0 and max: [0, max).

func (*TestSuite) RandInt64NonZero

func (ts *TestSuite) RandInt64NonZero(max int64) int64

RandInt64NonZero returns a random int64 between 1 and max+1: [1, max+1).

func (*TestSuite) RandInt8 added in v1.2.0

func (ts *TestSuite) RandInt8(max int8) int8

RandInt8 returns a random int8 between 0 and max: [0, max).

func (*TestSuite) RandIntNonZero

func (ts *TestSuite) RandIntNonZero(max int) int

RandIntNonZero returns a random int between 1 and max+1: [1, max+1).

func (*TestSuite) RandPeerID added in v0.15.0

func (ts *TestSuite) RandPeerID() peer.ID

RandPeerID returns a random peer ID.

func (*TestSuite) RandProof added in v0.15.0

func (ts *TestSuite) RandProof() sortition.Proof

RandProof generates a random Proof for testing purposes.

func (*TestSuite) RandRound added in v0.15.0

func (ts *TestSuite) RandRound() int16

RandRound returns a random number between [0, 10) for block round.

func (*TestSuite) RandSeed added in v0.15.0

func (ts *TestSuite) RandSeed() sortition.VerifiableSeed

RandSeed generates a random VerifiableSeed for testing purposes.

func (*TestSuite) RandSlice added in v1.2.0

func (ts *TestSuite) RandSlice(length int) []int32

RandSlice generates a random non-repeating slice of int32 elements with the specified length.

func (*TestSuite) RandString added in v0.15.0

func (ts *TestSuite) RandString(length int) string

RandString generates a random string of the given length.

func (*TestSuite) RandUint16

func (ts *TestSuite) RandUint16(max uint16) uint16

RandUint16 returns a random uint16 between 0 and max: [0, max).

func (*TestSuite) RandUint16NonZero

func (ts *TestSuite) RandUint16NonZero(max uint16) uint16

RandUint16NonZero returns a random uint16 between 1 and max+1: [1, max+1).

func (*TestSuite) RandUint32

func (ts *TestSuite) RandUint32(max uint32) uint32

RandUint32 returns a random uint32 between 0 and max: [0, max).

func (*TestSuite) RandUint32NonZero

func (ts *TestSuite) RandUint32NonZero(max uint32) uint32

RandUint32NonZero returns a random uint32 between 1 and max+1: [1, max+1).

func (*TestSuite) RandUint64

func (ts *TestSuite) RandUint64(max uint64) uint64

RandUint64 returns a random uint64 between 0 and max: [0, max).

func (*TestSuite) RandUint64NonZero

func (ts *TestSuite) RandUint64NonZero(max uint64) uint64

RandUint64NonZero returns a random uint64 between 1 and max+1: [1, max+1).

func (*TestSuite) RandUint8 added in v1.2.0

func (ts *TestSuite) RandUint8(max uint8) uint8

RandUint8 returns a random uint8 between 0 and max: [0, max).

func (*TestSuite) RandValAddress added in v0.15.0

func (ts *TestSuite) RandValAddress() crypto.Address

RandValAddress generates a random validator address for testing purposes.

func (*TestSuite) RandValKey added in v0.15.0

func (ts *TestSuite) RandValKey() *bls.ValidatorKey

RandValKey generates a random validator key for testing purposes.

type TransactionMaker added in v1.4.0

type TransactionMaker struct {
	LockTime  uint32
	Amount    amount.Amount
	Fee       amount.Amount
	Signer    crypto.PrivateKey
	ValPubKey *bls.PublicKey
}

func (*TransactionMaker) SignerAccountAddress added in v1.5.0

func (tm *TransactionMaker) SignerAccountAddress() crypto.Address

func (*TransactionMaker) SignerValidatorAddress added in v1.5.0

func (tm *TransactionMaker) SignerValidatorAddress() crypto.Address

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL