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  }