fix: flaky group genesis sim (#15447)

This commit is contained in:
Robert Zaremba 2023-03-20 11:33:58 +01:00 committed by GitHub
parent 124aed4b28
commit f4a6feb9d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,6 +21,16 @@ const (
GroupVote = "group-vote"
)
func checkAccExists(acc sdk.AccAddress, g []*group.GroupMember, lastIndex int) bool {
s := acc.String()
for i := 0; i < lastIndex; i++ {
if g[i].Member.Address == s {
return true
}
}
return false
}
func getGroups(r *rand.Rand, accounts []simtypes.Account) []*group.GroupInfo {
groups := make([]*group.GroupInfo, 3)
for i := 0; i < 3; i++ {
@ -40,6 +50,9 @@ func getGroupMembers(r *rand.Rand, accounts []simtypes.Account) []*group.GroupMe
groupMembers := make([]*group.GroupMember, 3)
for i := 0; i < 3; i++ {
acc, _ := simtypes.RandomAcc(r, accounts)
for checkAccExists(acc.Address, groupMembers, i) {
acc, _ = simtypes.RandomAcc(r, accounts)
}
groupMembers[i] = &group.GroupMember{
GroupId: uint64(i + 1),
Member: &group.Member{
@ -147,6 +160,11 @@ func getVoteOption(index int) group.VoteOption {
// RandomizedGenState generates a random GenesisState for the group module.
func RandomizedGenState(simState *module.SimulationState) {
// The test requires we have at least 3 accounts.
if len(simState.Accounts) < 3 {
return
}
// groups
var groups []*group.GroupInfo
simState.AppParams.GetOrGenerate(