github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/cache/committee_fuzz_test.go (about) 1 package cache 2 3 import ( 4 "testing" 5 6 fuzz "github.com/google/gofuzz" 7 "github.com/prysmaticlabs/prysm/shared/testutil/assert" 8 "github.com/prysmaticlabs/prysm/shared/testutil/require" 9 ) 10 11 func TestCommitteeKeyFuzz_OK(t *testing.T) { 12 fuzzer := fuzz.NewWithSeed(0) 13 c := &Committees{} 14 15 for i := 0; i < 100000; i++ { 16 fuzzer.Fuzz(c) 17 k, err := committeeKeyFn(c) 18 require.NoError(t, err) 19 assert.Equal(t, key(c.Seed), k) 20 } 21 } 22 23 func TestCommitteeCache_FuzzCommitteesByEpoch(t *testing.T) { 24 cache := NewCommitteesCache() 25 fuzzer := fuzz.NewWithSeed(0) 26 c := &Committees{} 27 28 for i := 0; i < 100000; i++ { 29 fuzzer.Fuzz(c) 30 require.NoError(t, cache.AddCommitteeShuffledList(c)) 31 _, err := cache.Committee(0, c.Seed, 0) 32 require.NoError(t, err) 33 } 34 35 assert.Equal(t, maxCommitteesCacheSize, uint64(len(cache.CommitteeCache.Keys())), "Incorrect key size") 36 } 37 38 func TestCommitteeCache_FuzzActiveIndices(t *testing.T) { 39 cache := NewCommitteesCache() 40 fuzzer := fuzz.NewWithSeed(0) 41 c := &Committees{} 42 43 for i := 0; i < 100000; i++ { 44 fuzzer.Fuzz(c) 45 require.NoError(t, cache.AddCommitteeShuffledList(c)) 46 47 indices, err := cache.ActiveIndices(c.Seed) 48 require.NoError(t, err) 49 assert.DeepEqual(t, c.SortedIndices, indices) 50 } 51 52 assert.Equal(t, maxCommitteesCacheSize, uint64(len(cache.CommitteeCache.Keys())), "Incorrect key size") 53 }