fix flacky test

This commit is contained in:
Evgeny Danienko 2022-09-05 10:48:56 +04:00
parent 9ac97e03fc
commit c0a4b0fbb5
2 changed files with 33 additions and 46065 deletions

View file

@ -95,7 +95,7 @@ func TestGetSignerSuccessionNumber_ProposerNotFound(t *testing.T) {
require.Len(t, snap.ValidatorSet.Validators, numVals) require.Len(t, snap.ValidatorSet.Validators, numVals)
dummyProposerAddress := randomAddress() dummyProposerAddress := randomAddress(toAddresses(validators)...)
snap.ValidatorSet.Proposer = &valset.Validator{Address: dummyProposerAddress} snap.ValidatorSet.Proposer = &valset.Validator{Address: dummyProposerAddress}
// choose any signer // choose any signer
@ -116,11 +116,14 @@ func TestGetSignerSuccessionNumber_SignerNotFound(t *testing.T) {
snap := Snapshot{ snap := Snapshot{
ValidatorSet: valset.NewValidatorSet(validators), ValidatorSet: valset.NewValidatorSet(validators),
} }
dummySignerAddress := randomAddress()
dummySignerAddress := randomAddress(toAddresses(validators)...)
_, err := snap.GetSignerSuccessionNumber(dummySignerAddress) _, err := snap.GetSignerSuccessionNumber(dummySignerAddress)
require.NotNil(t, err) require.NotNil(t, err)
e, ok := err.(*UnauthorizedSignerError) e, ok := err.(*UnauthorizedSignerError)
require.True(t, ok) require.True(t, ok)
require.Equal(t, dummySignerAddress.Bytes(), e.Signer) require.Equal(t, dummySignerAddress.Bytes(), e.Signer)
} }
@ -145,11 +148,25 @@ func buildRandomValidatorSet(numVals int) []*valset.Validator {
return validators return validators
} }
func randomAddress() common.Address { func randomAddress(exclude ...common.Address) common.Address {
bytes := make([]byte, 32) excl := make(map[common.Address]struct{}, len(exclude))
rand.Read(bytes)
return common.BytesToAddress(bytes) for _, addr := range exclude {
excl[addr] = struct{}{}
}
for {
bytes := make([]byte, 32)
rand.Read(bytes)
addr := common.BytesToAddress(bytes)
if _, ok := excl[addr]; ok {
continue
}
return addr
}
} }
func randomAddresses(n int) []common.Address { func randomAddresses(n int) []common.Address {
@ -199,3 +216,13 @@ func TestRandomAddresses(t *testing.T) {
} }
}) })
} }
func toAddresses(vals []*valset.Validator) []common.Address {
addrs := make([]common.Address, len(vals))
for i, val := range vals {
addrs[i] = val.Address
}
return addrs
}

File diff suppressed because one or more lines are too long