Skip to content

Commit 146d4e2

Browse files
fix: flaky group genesis sim (backport #15447) (#15460)
Co-authored-by: Robert Zaremba <[email protected]>
1 parent bb613ea commit 146d4e2

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

x/group/simulation/genesis.go

+18
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ const (
2121
GroupVote = "group-vote"
2222
)
2323

24+
func checkAccExists(acc sdk.AccAddress, g []*group.GroupMember, lastIndex int) bool {
25+
s := acc.String()
26+
for i := 0; i < lastIndex; i++ {
27+
if g[i].Member.Address == s {
28+
return true
29+
}
30+
}
31+
return false
32+
}
33+
2434
func getGroups(r *rand.Rand, accounts []simtypes.Account) []*group.GroupInfo {
2535
groups := make([]*group.GroupInfo, 3)
2636
for i := 0; i < 3; i++ {
@@ -40,6 +50,9 @@ func getGroupMembers(r *rand.Rand, accounts []simtypes.Account) []*group.GroupMe
4050
groupMembers := make([]*group.GroupMember, 3)
4151
for i := 0; i < 3; i++ {
4252
acc, _ := simtypes.RandomAcc(r, accounts)
53+
for checkAccExists(acc.Address, groupMembers, i) {
54+
acc, _ = simtypes.RandomAcc(r, accounts)
55+
}
4356
groupMembers[i] = &group.GroupMember{
4457
GroupId: uint64(i + 1),
4558
Member: &group.Member{
@@ -147,6 +160,11 @@ func getVoteOption(index int) group.VoteOption {
147160

148161
// RandomizedGenState generates a random GenesisState for the group module.
149162
func RandomizedGenState(simState *module.SimulationState) {
163+
// The test requires we have at least 3 accounts.
164+
if len(simState.Accounts) < 3 {
165+
return
166+
}
167+
150168
// groups
151169
var groups []*group.GroupInfo
152170
simState.AppParams.GetOrGenerate(

0 commit comments

Comments
 (0)