diff --git a/beacon-chain/cache/BUILD.bazel b/beacon-chain/cache/BUILD.bazel index c666d6124e..1df8fcc06c 100644 --- a/beacon-chain/cache/BUILD.bazel +++ b/beacon-chain/cache/BUILD.bazel @@ -58,6 +58,8 @@ go_test( "//shared/featureconfig:go_default_library", "//shared/hashutil:go_default_library", "//shared/params:go_default_library", + "//shared/testutil/assert:go_default_library", + "//shared/testutil/require:go_default_library", "@com_github_gogo_protobuf//proto:go_default_library", "@com_github_google_gofuzz//:go_default_library", "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library", diff --git a/beacon-chain/cache/attestation_data_test.go b/beacon-chain/cache/attestation_data_test.go index 9d7a66b27d..c82bce990f 100644 --- a/beacon-chain/cache/attestation_data_test.go +++ b/beacon-chain/cache/attestation_data_test.go @@ -7,6 +7,7 @@ import ( "github.com/gogo/protobuf/proto" ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1" "github.com/prysmaticlabs/prysm/beacon-chain/cache" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" ) func TestAttestationCache_RoundTrip(t *testing.T) { @@ -19,34 +20,20 @@ func TestAttestationCache_RoundTrip(t *testing.T) { } response, err := c.Get(ctx, req) - if err != nil { - t.Error(err) - } + assert.NoError(t, err) + assert.Equal(t, (*ethpb.AttestationData)(nil), response) - if response != nil { - t.Errorf("Empty cache returned an object: %v", response) - } - - if err := c.MarkInProgress(req); err != nil { - t.Error(err) - } + assert.NoError(t, c.MarkInProgress(req)) res := ðpb.AttestationData{ Target: ðpb.Checkpoint{Epoch: 5}, } - if err = c.Put(ctx, req, res); err != nil { - t.Error(err) - } - - if err := c.MarkNotInProgress(req); err != nil { - t.Error(err) - } + assert.NoError(t, c.Put(ctx, req, res)) + assert.NoError(t, c.MarkNotInProgress(req)) response, err = c.Get(ctx, req) - if err != nil { - t.Error(err) - } + assert.NoError(t, err) if !proto.Equal(response, res) { t.Error("Expected equal protos to return from cache") diff --git a/beacon-chain/cache/checkpoint_state_test.go b/beacon-chain/cache/checkpoint_state_test.go index 6210ef1dd1..8a8f03b13d 100644 --- a/beacon-chain/cache/checkpoint_state_test.go +++ b/beacon-chain/cache/checkpoint_state_test.go @@ -1,7 +1,6 @@ package cache import ( - "reflect" "testing" "github.com/gogo/protobuf/proto" @@ -11,6 +10,8 @@ import ( "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/hashutil" "github.com/prysmaticlabs/prysm/shared/params" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestCheckpointStateCacheKeyFn_OK(t *testing.T) { @@ -18,31 +19,23 @@ func TestCheckpointStateCacheKeyFn_OK(t *testing.T) { st, err := stateTrie.InitializeFromProto(&pb.BeaconState{ Slot: 64, }) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) + info := &CheckpointState{ Checkpoint: cp, State: st, } key, err := checkpointState(info) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) + wantedKey, err := hashutil.HashProto(cp) - if err != nil { - t.Fatal(err) - } - if key != string(wantedKey[:]) { - t.Errorf("Incorrect hash key: %s, expected %s", key, string(wantedKey[:])) - } + require.NoError(t, err) + assert.Equal(t, string(wantedKey[:]), key) } func TestCheckpointStateCacheKeyFn_InvalidObj(t *testing.T) { _, err := checkpointState("bad") - if err != ErrNotCheckpointState { - t.Errorf("Expected error %v, got %v", ErrNotCheckpointState, err) - } + assert.Equal(t, ErrNotCheckpointState, err) } func TestCheckpointStateCache_StateByCheckpoint(t *testing.T) { @@ -53,28 +46,21 @@ func TestCheckpointStateCache_StateByCheckpoint(t *testing.T) { GenesisValidatorsRoot: params.BeaconConfig().ZeroHash[:], Slot: 64, }) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) + info1 := &CheckpointState{ Checkpoint: cp1, State: st, } state, err := cache.StateByCheckpoint(cp1) - if err != nil { - t.Fatal(err) - } - if state != nil { - t.Error("Expected state not to exist in empty cache") - } + require.NoError(t, err) + assert.Equal(t, (*stateTrie.BeaconState)(nil), state, "Expected state not to exist in empty cache") + + require.NoError(t, cache.AddCheckpointState(info1)) - if err := cache.AddCheckpointState(info1); err != nil { - t.Fatal(err) - } state, err = cache.StateByCheckpoint(cp1) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) + if !proto.Equal(state.InnerStateUnsafe(), info1.State.InnerStateUnsafe()) { t.Error("incorrectly cached state") } @@ -83,31 +69,21 @@ func TestCheckpointStateCache_StateByCheckpoint(t *testing.T) { st2, err := stateTrie.InitializeFromProto(&pb.BeaconState{ Slot: 128, }) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) + info2 := &CheckpointState{ Checkpoint: cp2, State: st2, } - if err := cache.AddCheckpointState(info2); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCheckpointState(info2)) + state, err = cache.StateByCheckpoint(cp2) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(state.CloneInnerState(), info2.State.CloneInnerState()) { - t.Error("incorrectly cached state") - } + require.NoError(t, err) + assert.DeepEqual(t, info2.State.CloneInnerState(), state.CloneInnerState(), "incorrectly cached state") state, err = cache.StateByCheckpoint(cp1) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(state.CloneInnerState(), info1.State.CloneInnerState()) { - t.Error("incorrectly cached state") - } + require.NoError(t, err) + assert.DeepEqual(t, info1.State.CloneInnerState(), state.CloneInnerState(), "incorrectly cached state") } func TestCheckpointStateCache_MaxSize(t *testing.T) { @@ -115,27 +91,17 @@ func TestCheckpointStateCache_MaxSize(t *testing.T) { st, err := stateTrie.InitializeFromProto(&pb.BeaconState{ Slot: 0, }) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) + for i := uint64(0); i < maxCheckpointStateSize+100; i++ { - if err := st.SetSlot(i); err != nil { - t.Fatal(err) - } + require.NoError(t, st.SetSlot(i)) + info := &CheckpointState{ Checkpoint: ðpb.Checkpoint{Epoch: i}, State: st, } - if err := c.AddCheckpointState(info); err != nil { - t.Fatal(err) - } + require.NoError(t, c.AddCheckpointState(info)) } - if uint64(len(c.cache.ListKeys())) != maxCheckpointStateSize { - t.Errorf( - "Expected hash cache key size to be %d, got %d", - maxCheckpointStateSize, - len(c.cache.ListKeys()), - ) - } + assert.Equal(t, maxCheckpointStateSize, uint64(len(c.cache.ListKeys()))) } diff --git a/beacon-chain/cache/committee_fuzz_test.go b/beacon-chain/cache/committee_fuzz_test.go index edbf6cba85..19698a9845 100644 --- a/beacon-chain/cache/committee_fuzz_test.go +++ b/beacon-chain/cache/committee_fuzz_test.go @@ -1,10 +1,11 @@ package cache import ( - "reflect" "testing" fuzz "github.com/google/gofuzz" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestCommitteeKeyFuzz_OK(t *testing.T) { @@ -14,12 +15,8 @@ func TestCommitteeKeyFuzz_OK(t *testing.T) { for i := 0; i < 100000; i++ { fuzzer.Fuzz(c) k, err := committeeKeyFn(c) - if err != nil { - t.Fatal(err) - } - if k != key(c.Seed) { - t.Errorf("Incorrect hash k: %s, expected %s", k, key(c.Seed)) - } + require.NoError(t, err) + assert.Equal(t, key(c.Seed), k) } } @@ -30,17 +27,12 @@ func TestCommitteeCache_FuzzCommitteesByEpoch(t *testing.T) { for i := 0; i < 100000; i++ { fuzzer.Fuzz(c) - if err := cache.AddCommitteeShuffledList(c); err != nil { - t.Fatal(err) - } - if _, err := cache.Committee(0, c.Seed, 0); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCommitteeShuffledList(c)) + _, err := cache.Committee(0, c.Seed, 0) + require.NoError(t, err) } - if uint64(len(cache.CommitteeCache.ListKeys())) != maxCommitteesCacheSize { - t.Error("Incorrect key size") - } + assert.Equal(t, maxCommitteesCacheSize, uint64(len(cache.CommitteeCache.ListKeys())), "Incorrect key size") } func TestCommitteeCache_FuzzActiveIndices(t *testing.T) { @@ -50,19 +42,12 @@ func TestCommitteeCache_FuzzActiveIndices(t *testing.T) { for i := 0; i < 100000; i++ { fuzzer.Fuzz(c) - if err := cache.AddCommitteeShuffledList(c); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCommitteeShuffledList(c)) + indices, err := cache.ActiveIndices(c.Seed) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(indices, c.SortedIndices) { - t.Error("Saved indices not the same") - } + require.NoError(t, err) + assert.DeepEqual(t, c.SortedIndices, indices) } - if uint64(len(cache.CommitteeCache.ListKeys())) != maxCommitteesCacheSize { - t.Error("Incorrect key size") - } + assert.Equal(t, maxCommitteesCacheSize, uint64(len(cache.CommitteeCache.ListKeys())), "Incorrect key size") } diff --git a/beacon-chain/cache/committee_test.go b/beacon-chain/cache/committee_test.go index 586891d544..6e5b40d32a 100644 --- a/beacon-chain/cache/committee_test.go +++ b/beacon-chain/cache/committee_test.go @@ -2,13 +2,14 @@ package cache import ( "math" - "reflect" "sort" "strconv" "testing" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestCommitteeKeyFn_OK(t *testing.T) { @@ -19,19 +20,13 @@ func TestCommitteeKeyFn_OK(t *testing.T) { } k, err := committeeKeyFn(item) - if err != nil { - t.Fatal(err) - } - if k != key(item.Seed) { - t.Errorf("Incorrect hash k: %s, expected %s", k, key(item.Seed)) - } + require.NoError(t, err) + assert.Equal(t, key(item.Seed), k) } func TestCommitteeKeyFn_InvalidObj(t *testing.T) { _, err := committeeKeyFn("bad") - if err != ErrNotCommittee { - t.Errorf("Expected error %v, got %v", ErrNotCommittee, err) - } + assert.Equal(t, ErrNotCommittee, err) } func TestCommitteeCache_CommitteesByEpoch(t *testing.T) { @@ -46,30 +41,18 @@ func TestCommitteeCache_CommitteesByEpoch(t *testing.T) { slot := params.BeaconConfig().SlotsPerEpoch committeeIndex := uint64(1) indices, err := cache.Committee(slot, item.Seed, committeeIndex) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) if indices != nil { t.Error("Expected committee not to exist in empty cache") } + require.NoError(t, cache.AddCommitteeShuffledList(item)) - if err := cache.AddCommitteeShuffledList(item); err != nil { - t.Fatal(err) - } wantedIndex := uint64(0) indices, err = cache.Committee(slot, item.Seed, wantedIndex) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) start, end := startEndIndices(item, wantedIndex) - if !reflect.DeepEqual(indices, item.ShuffledIndices[start:end]) { - t.Errorf( - "Expected fetched active indices to be %v, got %v", - indices, - item.ShuffledIndices[start:end], - ) - } + assert.DeepEqual(t, item.ShuffledIndices[start:end], indices) } func TestCommitteeCache_ActiveIndices(t *testing.T) { @@ -77,24 +60,16 @@ func TestCommitteeCache_ActiveIndices(t *testing.T) { item := &Committees{Seed: [32]byte{'A'}, SortedIndices: []uint64{1, 2, 3, 4, 5, 6}} indices, err := cache.ActiveIndices(item.Seed) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) if indices != nil { - t.Error("Expected committee count not to exist in empty cache") + t.Error("Expected committee not to exist in empty cache") } - if err := cache.AddCommitteeShuffledList(item); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCommitteeShuffledList(item)) indices, err = cache.ActiveIndices(item.Seed) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(indices, item.SortedIndices) { - t.Error("Did not receive correct active indices from cache") - } + require.NoError(t, err) + assert.DeepEqual(t, item.SortedIndices, indices) } func TestCommitteeCache_ActiveCount(t *testing.T) { @@ -102,24 +77,14 @@ func TestCommitteeCache_ActiveCount(t *testing.T) { item := &Committees{Seed: [32]byte{'A'}, SortedIndices: []uint64{1, 2, 3, 4, 5, 6}} count, err := cache.ActiveIndicesCount(item.Seed) - if err != nil { - t.Fatal(err) - } - if count != 0 { - t.Error("Expected active count not to exist in empty cache") - } + require.NoError(t, err) + assert.Equal(t, 0, count, "Expected active count not to exist in empty cache") - if err := cache.AddCommitteeShuffledList(item); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCommitteeShuffledList(item)) count, err = cache.ActiveIndicesCount(item.Seed) - if err != nil { - t.Fatal(err) - } - if count != len(item.SortedIndices) { - t.Error("Did not receive correct active acount from cache") - } + require.NoError(t, err) + assert.Equal(t, len(item.SortedIndices), count) } func TestCommitteeCache_AddProposerIndicesList(t *testing.T) { @@ -128,45 +93,29 @@ func TestCommitteeCache_AddProposerIndicesList(t *testing.T) { seed := [32]byte{'A'} indices := []uint64{1, 2, 3, 4, 5} indices, err := cache.ProposerIndices(seed) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) if indices != nil { t.Error("Expected committee count not to exist in empty cache") } - if err := cache.AddProposerIndicesList(seed, indices); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddProposerIndicesList(seed, indices)) + received, err := cache.ProposerIndices(seed) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(indices, received) { - t.Error("Did not receive correct proposer indices from cache") - } + require.NoError(t, err) + assert.DeepEqual(t, received, indices) item := &Committees{Seed: [32]byte{'B'}, SortedIndices: []uint64{1, 2, 3, 4, 5, 6}} - if err := cache.AddCommitteeShuffledList(item); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCommitteeShuffledList(item)) + indices, err = cache.ProposerIndices(item.Seed) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) if indices != nil { t.Error("Expected committee count not to exist in empty cache") } - if err := cache.AddProposerIndicesList(item.Seed, indices); err != nil { - t.Fatal(err) - } - received, err = cache.ProposerIndices(item.Seed) - if err != nil { - t.Fatal(err) - } - if !reflect.DeepEqual(indices, received) { - t.Error("Did not receive correct proposer indices from cache") - } + require.NoError(t, cache.AddProposerIndicesList(item.Seed, indices)) + received, err = cache.ProposerIndices(item.Seed) + require.NoError(t, err) + assert.DeepEqual(t, received, indices) } func TestCommitteeCache_CanRotate(t *testing.T) { @@ -176,27 +125,20 @@ func TestCommitteeCache_CanRotate(t *testing.T) { for i := 100; i < 200; i++ { s := []byte(strconv.Itoa(i)) item := &Committees{Seed: bytesutil.ToBytes32(s)} - if err := cache.AddCommitteeShuffledList(item); err != nil { - t.Fatal(err) - } + require.NoError(t, cache.AddCommitteeShuffledList(item)) } k := cache.CommitteeCache.ListKeys() - if uint64(len(k)) != maxCommitteesCacheSize { - t.Errorf("wanted: %d, got: %d", maxCommitteesCacheSize, len(k)) - } + assert.Equal(t, maxCommitteesCacheSize, uint64(len(k))) sort.Slice(k, func(i, j int) bool { return k[i] < k[j] }) s := bytesutil.ToBytes32([]byte(strconv.Itoa(190))) - if k[0] != key(s) { - t.Error("incorrect key received for slot 190") - } + assert.Equal(t, key(s), k[0], "incorrect key received for slot 190") + s = bytesutil.ToBytes32([]byte(strconv.Itoa(199))) - if k[len(k)-1] != key(s) { - t.Error("incorrect key received for slot 199") - } + assert.Equal(t, key(s), k[len(k)-1], "incorrect key received for slot 199") } func TestCommitteeCacheOutOfRange(t *testing.T) { @@ -209,11 +151,8 @@ func TestCommitteeCacheOutOfRange(t *testing.T) { SortedIndices: []uint64{}, ProposerIndices: []uint64{}, }) - if err != nil { - t.Error(err) - } + require.NoError(t, err) + _, err = cache.Committee(0, seed, math.MaxUint64) // Overflow! - if err == nil { - t.Fatal("Did not fail as expected") - } + require.NotNil(t, err, "Did not fail as expected") } diff --git a/beacon-chain/cache/depositcache/BUILD.bazel b/beacon-chain/cache/depositcache/BUILD.bazel index 8afe41d2b4..06aa97f282 100644 --- a/beacon-chain/cache/depositcache/BUILD.bazel +++ b/beacon-chain/cache/depositcache/BUILD.bazel @@ -35,6 +35,8 @@ go_test( "//proto/beacon/db:go_default_library", "//shared/bytesutil:go_default_library", "//shared/params:go_default_library", + "//shared/testutil/assert:go_default_library", + "//shared/testutil/require:go_default_library", "//shared/trieutil:go_default_library", "@com_github_gogo_protobuf//proto:go_default_library", "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library", diff --git a/beacon-chain/cache/depositcache/deposits_cache_test.go b/beacon-chain/cache/depositcache/deposits_cache_test.go index f720f91530..c1bd1b1e2b 100644 --- a/beacon-chain/cache/depositcache/deposits_cache_test.go +++ b/beacon-chain/cache/depositcache/deposits_cache_test.go @@ -3,6 +3,7 @@ package depositcache import ( "bytes" "context" + "fmt" "math/big" "testing" @@ -11,6 +12,8 @@ import ( dbpb "github.com/prysmaticlabs/prysm/proto/beacon/db" "github.com/prysmaticlabs/prysm/shared/bytesutil" "github.com/prysmaticlabs/prysm/shared/params" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" "github.com/prysmaticlabs/prysm/shared/trieutil" logTest "github.com/sirupsen/logrus/hooks/test" ) @@ -25,12 +28,8 @@ func TestInsertDeposit_LogsOnNilDepositInsertion(t *testing.T) { dc.InsertDeposit(context.Background(), nil, 1, 0, [32]byte{}) - if len(dc.deposits) != 0 { - t.Fatal("Number of deposits changed") - } - if hook.LastEntry().Message != nilDepositErr { - t.Errorf("Did not log correct message, wanted \"Ignoring nil deposit insertion\", got \"%s\"", hook.LastEntry().Message) - } + require.Equal(t, 0, len(dc.deposits), "Number of deposits changed") + assert.Equal(t, nilDepositErr, hook.LastEntry().Message) } func TestInsertDeposit_MaintainsSortedOrderByIndex(t *testing.T) { @@ -69,9 +68,8 @@ func TestInsertDeposit_MaintainsSortedOrderByIndex(t *testing.T) { expectedIndices := []int64{0, 1, 3, 4} for i, ei := range expectedIndices { - if dc.deposits[i].Index != ei { - t.Errorf("dc.deposits[%d].Index = %d, wanted %d", i, dc.deposits[i].Index, ei) - } + assert.Equal(t, ei, dc.deposits[i].Index, + fmt.Sprintf("dc.deposits[%d].Index = %d, wanted %d", i, dc.deposits[i].Index, ei)) } } @@ -111,9 +109,7 @@ func TestAllDeposits_ReturnsAllDeposits(t *testing.T) { dc.deposits = deposits d := dc.AllDeposits(context.Background(), nil) - if len(d) != len(deposits) { - t.Errorf("Return the wrong number of deposits (%d) wanted %d", len(d), len(deposits)) - } + assert.Equal(t, len(deposits), len(d)) } func TestAllDeposits_FiltersDepositUpToAndIncludingBlockNumber(t *testing.T) { @@ -152,10 +148,7 @@ func TestAllDeposits_FiltersDepositUpToAndIncludingBlockNumber(t *testing.T) { dc.deposits = deposits d := dc.AllDeposits(context.Background(), big.NewInt(11)) - expected := 5 - if len(d) != expected { - t.Errorf("Return the wrong number of deposits (%d) wanted %d", len(d), expected) - } + assert.Equal(t, 5, len(d)) } func TestDepositsNumberAndRootAtHeight_ReturnsAppropriateCountAndRoot(t *testing.T) { @@ -194,13 +187,8 @@ func TestDepositsNumberAndRootAtHeight_ReturnsAppropriateCountAndRoot(t *testing } n, root := dc.DepositsNumberAndRootAtHeight(context.Background(), big.NewInt(11)) - if int(n) != 5 { - t.Errorf("Returned unexpected deposits number %d wanted %d", n, 5) - } - - if root != bytesutil.ToBytes32([]byte("root")) { - t.Errorf("Returned unexpected root: %v", root) - } + assert.Equal(t, 5, int(n)) + assert.Equal(t, bytesutil.ToBytes32([]byte("root")), root) } func TestDepositsNumberAndRootAtHeight_ReturnsEmptyTrieIfBlockHeightLessThanOldestDeposit(t *testing.T) { @@ -220,13 +208,8 @@ func TestDepositsNumberAndRootAtHeight_ReturnsEmptyTrieIfBlockHeightLessThanOlde } n, root := dc.DepositsNumberAndRootAtHeight(context.Background(), big.NewInt(2)) - if int(n) != 0 { - t.Errorf("Returned unexpected deposits number %d wanted %d", n, 0) - } - - if root != [32]byte{} { - t.Errorf("Returned unexpected root: %v", root) - } + assert.Equal(t, 0, int(n)) + assert.Equal(t, [32]byte{}, root) } func TestDepositByPubkey_ReturnsFirstMatchingDeposit(t *testing.T) { @@ -272,9 +255,8 @@ func TestDepositByPubkey_ReturnsFirstMatchingDeposit(t *testing.T) { if !bytes.Equal(dep.Data.PublicKey, []byte("pk1")) { t.Error("Returned wrong deposit") } - if blkNum.Cmp(big.NewInt(10)) != 0 { - t.Errorf("Returned wrong block number %v", blkNum) - } + assert.Equal(t, 0, blkNum.Cmp(big.NewInt(10)), + fmt.Sprintf("Returned wrong block number %v", blkNum)) } func TestFinalizedDeposits_DepositsCachedCorrectly(t *testing.T) { @@ -318,31 +300,18 @@ func TestFinalizedDeposits_DepositsCachedCorrectly(t *testing.T) { dc.InsertFinalizedDeposits(context.Background(), 2) cachedDeposits := dc.FinalizedDeposits(context.Background()) - if cachedDeposits == nil { - t.Fatalf("Deposits not cached") - } - if cachedDeposits.MerkleTrieIndex != 2 { - t.Errorf("Incorrect index of last deposit (%d) vs expected 2", cachedDeposits.MerkleTrieIndex) - } + require.NotNil(t, cachedDeposits, "Deposits not cached") + assert.Equal(t, int64(2), cachedDeposits.MerkleTrieIndex) var deps [][]byte for _, d := range finalizedDeposits { hash, err := ssz.HashTreeRoot(d.Deposit.Data) - if err != nil { - t.Fatalf("Could not hash deposit data") - } + require.NoError(t, err, "Could not hash deposit data") deps = append(deps, hash[:]) } trie, err := trieutil.GenerateTrieFromItems(deps, int(params.BeaconConfig().DepositContractTreeDepth)) - if err != nil { - t.Fatalf("Could not generate deposit trie") - } - - actualRoot := cachedDeposits.Deposits.HashTreeRoot() - expectedRoot := trie.HashTreeRoot() - if actualRoot != expectedRoot { - t.Errorf("Incorrect deposit trie root (%x) vs expected %x", actualRoot, expectedRoot) - } + require.NoError(t, err, "Could not generate deposit trie") + assert.Equal(t, trie.HashTreeRoot(), cachedDeposits.Deposits.HashTreeRoot()) } func TestFinalizedDeposits_UtilizesPreviouslyCachedDeposits(t *testing.T) { @@ -382,31 +351,18 @@ func TestFinalizedDeposits_UtilizesPreviouslyCachedDeposits(t *testing.T) { dc.InsertFinalizedDeposits(context.Background(), 2) cachedDeposits := dc.FinalizedDeposits(context.Background()) - if cachedDeposits == nil { - t.Fatalf("Deposits not cached") - } - if cachedDeposits.MerkleTrieIndex != 2 { - t.Errorf("Incorrect index of last deposit (%d) vs expected 3", cachedDeposits.MerkleTrieIndex) - } + require.NotNil(t, cachedDeposits, "Deposits not cached") + assert.Equal(t, int64(2), cachedDeposits.MerkleTrieIndex) var deps [][]byte for _, d := range append(oldFinalizedDeposits, &newFinalizedDeposit) { hash, err := ssz.HashTreeRoot(d.Deposit.Data) - if err != nil { - t.Fatalf("Could not hash deposit data") - } + require.NoError(t, err, "Could not hash deposit data") deps = append(deps, hash[:]) } trie, err := trieutil.GenerateTrieFromItems(deps, int(params.BeaconConfig().DepositContractTreeDepth)) - if err != nil { - t.Fatalf("Could not generate deposit trie") - } - - actualRoot := cachedDeposits.Deposits.HashTreeRoot() - expectedRoot := trie.HashTreeRoot() - if actualRoot != expectedRoot { - t.Errorf("Incorrect deposit trie root (%x) vs expected %x", actualRoot, expectedRoot) - } + require.NoError(t, err, "Could not generate deposit trie") + assert.Equal(t, trie.HashTreeRoot(), cachedDeposits.Deposits.HashTreeRoot()) } func TestNonFinalizedDeposits_ReturnsAllNonFinalizedDeposits(t *testing.T) { @@ -454,9 +410,7 @@ func TestNonFinalizedDeposits_ReturnsAllNonFinalizedDeposits(t *testing.T) { dc.InsertFinalizedDeposits(context.Background(), 1) deps := dc.NonFinalizedDeposits(context.Background(), nil) - if len(deps) != 2 { - t.Errorf("Incorrect number of non-finalized deposits (%d) vs expected 2", len(deps)) - } + assert.Equal(t, 2, len(deps)) } func TestNonFinalizedDeposits_ReturnsNonFinalizedDepositsUpToBlockNumber(t *testing.T) { @@ -504,7 +458,5 @@ func TestNonFinalizedDeposits_ReturnsNonFinalizedDepositsUpToBlockNumber(t *test dc.InsertFinalizedDeposits(context.Background(), 1) deps := dc.NonFinalizedDeposits(context.Background(), big.NewInt(10)) - if len(deps) != 1 { - t.Errorf("Incorrect number of non-finalized deposits (%d) vs expected 1", len(deps)) - } + assert.Equal(t, 1, len(deps)) } diff --git a/beacon-chain/cache/depositcache/pending_deposits_test.go b/beacon-chain/cache/depositcache/pending_deposits_test.go index 5deb8ded56..0bf33aadad 100644 --- a/beacon-chain/cache/depositcache/pending_deposits_test.go +++ b/beacon-chain/cache/depositcache/pending_deposits_test.go @@ -3,13 +3,13 @@ package depositcache import ( "context" "math/big" - "reflect" "testing" "github.com/gogo/protobuf/proto" ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1" dbpb "github.com/prysmaticlabs/prysm/proto/beacon/db" "github.com/prysmaticlabs/prysm/shared/bytesutil" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" ) var _ = PendingDepositsFetcher(&DepositCache{}) @@ -18,18 +18,14 @@ func TestInsertPendingDeposit_OK(t *testing.T) { dc := DepositCache{} dc.InsertPendingDeposit(context.Background(), ðpb.Deposit{}, 111, 100, [32]byte{}) - if len(dc.pendingDeposits) != 1 { - t.Error("Deposit not inserted") - } + assert.Equal(t, 1, len(dc.pendingDeposits), "Deposit not inserted") } func TestInsertPendingDeposit_ignoresNilDeposit(t *testing.T) { dc := DepositCache{} dc.InsertPendingDeposit(context.Background(), nil /*deposit*/, 0 /*blockNum*/, 0, [32]byte{}) - if len(dc.pendingDeposits) > 0 { - t.Error("Unexpected deposit insertion") - } + assert.Equal(t, 0, len(dc.pendingDeposits)) } func TestRemovePendingDeposit_OK(t *testing.T) { @@ -55,9 +51,7 @@ func TestRemovePendingDeposit_IgnoresNilDeposit(t *testing.T) { dc := DepositCache{} dc.pendingDeposits = []*dbpb.DepositContainer{{Deposit: ðpb.Deposit{}}} dc.RemovePendingDeposit(context.Background(), nil /*deposit*/) - if len(dc.pendingDeposits) != 1 { - t.Errorf("Deposit unexpectedly removed") - } + assert.Equal(t, 1, len(dc.pendingDeposits), "Deposit unexpectedly removed") } func TestPendingDeposit_RoundTrip(t *testing.T) { @@ -67,9 +61,7 @@ func TestPendingDeposit_RoundTrip(t *testing.T) { dep := ðpb.Deposit{Proof: proof} dc.InsertPendingDeposit(context.Background(), dep, 111, 100, [32]byte{}) dc.RemovePendingDeposit(context.Background(), dep) - if len(dc.pendingDeposits) != 0 { - t.Error("Failed to insert & delete a pending deposit") - } + assert.Equal(t, 0, len(dc.pendingDeposits), "Failed to insert & delete a pending deposit") } func TestPendingDeposits_OK(t *testing.T) { @@ -86,15 +78,10 @@ func TestPendingDeposits_OK(t *testing.T) { {Proof: [][]byte{[]byte("A")}}, {Proof: [][]byte{[]byte("B")}}, } - - if !reflect.DeepEqual(deposits, expected) { - t.Errorf("Unexpected deposits. got=%+v want=%+v", deposits, expected) - } + assert.DeepEqual(t, expected, deposits) all := dc.PendingDeposits(context.Background(), nil) - if len(all) != len(dc.pendingDeposits) { - t.Error("PendingDeposits(ctx, nil) did not return all deposits") - } + assert.Equal(t, len(dc.pendingDeposits), len(all), "PendingDeposits(ctx, nil) did not return all deposits") } func TestPrunePendingDeposits_ZeroMerkleIndex(t *testing.T) { @@ -118,9 +105,7 @@ func TestPrunePendingDeposits_ZeroMerkleIndex(t *testing.T) { {Eth1BlockHeight: 10, Index: 10}, {Eth1BlockHeight: 12, Index: 12}, } - if !reflect.DeepEqual(dc.pendingDeposits, expected) { - t.Errorf("Unexpected deposits. got=%+v want=%+v", dc.pendingDeposits, expected) - } + assert.DeepEqual(t, expected, dc.pendingDeposits) } func TestPrunePendingDeposits_OK(t *testing.T) { @@ -143,9 +128,7 @@ func TestPrunePendingDeposits_OK(t *testing.T) { {Eth1BlockHeight: 12, Index: 12}, } - if !reflect.DeepEqual(dc.pendingDeposits, expected) { - t.Errorf("Unexpected deposits. got=%+v want=%+v", dc.pendingDeposits, expected) - } + assert.DeepEqual(t, expected, dc.pendingDeposits) dc.pendingDeposits = []*dbpb.DepositContainer{ {Eth1BlockHeight: 2, Index: 2}, @@ -162,8 +145,5 @@ func TestPrunePendingDeposits_OK(t *testing.T) { {Eth1BlockHeight: 12, Index: 12}, } - if !reflect.DeepEqual(dc.pendingDeposits, expected) { - t.Errorf("Unexpected deposits. got=%+v want=%+v", dc.pendingDeposits, expected) - } - + assert.DeepEqual(t, expected, dc.pendingDeposits) } diff --git a/beacon-chain/cache/hot_state_cache_test.go b/beacon-chain/cache/hot_state_cache_test.go index f97f73ea56..a2a1d61ea4 100644 --- a/beacon-chain/cache/hot_state_cache_test.go +++ b/beacon-chain/cache/hot_state_cache_test.go @@ -1,46 +1,34 @@ package cache_test import ( - "reflect" "testing" "github.com/prysmaticlabs/prysm/beacon-chain/cache" stateTrie "github.com/prysmaticlabs/prysm/beacon-chain/state" pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestHotStateCache_RoundTrip(t *testing.T) { c := cache.NewHotStateCache() root := [32]byte{'A'} state := c.Get(root) - if state != nil { - t.Errorf("Empty cache returned an object: %v", state) - } - if c.Has(root) { - t.Error("Empty cache has an object") - } + assert.Equal(t, (*stateTrie.BeaconState)(nil), state) + assert.Equal(t, false, c.Has(root), "Empty cache has an object") state, err := stateTrie.InitializeFromProto(&pb.BeaconState{ Slot: 10, }) - if err != nil { - t.Fatal(err) - } - c.Put(root, state) + require.NoError(t, err) + + c.Put(root, state) + assert.Equal(t, true, c.Has(root), "Empty cache does not have an object") - if !c.Has(root) { - t.Error("Empty cache does not have an object") - } res := c.Get(root) - if state == nil { - t.Errorf("Empty cache returned an object: %v", state) - } - if !reflect.DeepEqual(state.CloneInnerState(), res.CloneInnerState()) { - t.Error("Expected equal protos to return from cache") - } + assert.NotNil(t, state) + assert.DeepEqual(t, res.CloneInnerState(), state.CloneInnerState(), "Expected equal protos to return from cache") c.Delete(root) - if c.Has(root) { - t.Error("Cache not suppose to have the object") - } + assert.Equal(t, false, c.Has(root), "Cache not supposed to have the object") } diff --git a/beacon-chain/cache/skip_slot_cache_test.go b/beacon-chain/cache/skip_slot_cache_test.go index 54641ebb83..180db14fa3 100644 --- a/beacon-chain/cache/skip_slot_cache_test.go +++ b/beacon-chain/cache/skip_slot_cache_test.go @@ -2,12 +2,13 @@ package cache_test import ( "context" - "reflect" "testing" "github.com/prysmaticlabs/prysm/beacon-chain/cache" stateTrie "github.com/prysmaticlabs/prysm/beacon-chain/state" pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1" + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestSkipSlotCache_RoundTrip(t *testing.T) { @@ -15,39 +16,20 @@ func TestSkipSlotCache_RoundTrip(t *testing.T) { c := cache.NewSkipSlotCache() state, err := c.Get(ctx, 5) - if err != nil { - t.Error(err) - } + require.NoError(t, err) + assert.Equal(t, (*stateTrie.BeaconState)(nil), state, "Empty cache returned an object") - if state != nil { - t.Errorf("Empty cache returned an object: %v", state) - } - - if err := c.MarkInProgress(5); err != nil { - t.Error(err) - } + require.NoError(t, c.MarkInProgress(5)) state, err = stateTrie.InitializeFromProto(&pb.BeaconState{ Slot: 10, }) - if err != nil { - t.Fatal(err) - } + require.NoError(t, err) - if err = c.Put(ctx, 5, state); err != nil { - t.Error(err) - } - - if err := c.MarkNotInProgress(5); err != nil { - t.Error(err) - } + require.NoError(t, c.Put(ctx, 5, state)) + require.NoError(t, c.MarkNotInProgress(5)) res, err := c.Get(ctx, 5) - if err != nil { - t.Error(err) - } - - if !reflect.DeepEqual(state.CloneInnerState(), res.CloneInnerState()) { - t.Error("Expected equal protos to return from cache") - } + require.NoError(t, err) + assert.DeepEqual(t, res.CloneInnerState(), state.CloneInnerState(), "Expected equal protos to return from cache") } diff --git a/beacon-chain/cache/subnet_ids_test.go b/beacon-chain/cache/subnet_ids_test.go index 4090300232..17967150e4 100644 --- a/beacon-chain/cache/subnet_ids_test.go +++ b/beacon-chain/cache/subnet_ids_test.go @@ -1,58 +1,44 @@ package cache import ( - "reflect" "testing" + + "github.com/prysmaticlabs/prysm/shared/testutil/assert" + "github.com/prysmaticlabs/prysm/shared/testutil/require" ) func TestSubnetIDsCache_RoundTrip(t *testing.T) { c := newSubnetIDs() slot := uint64(100) committeeIDs := c.GetAggregatorSubnetIDs(slot) - if len(committeeIDs) != 0 { - t.Errorf("Empty cache returned an object: %v", committeeIDs) - } + assert.Equal(t, 0, len(committeeIDs), "Empty cache returned an object") c.AddAggregatorSubnetID(slot, 1) res := c.GetAggregatorSubnetIDs(slot) - if !reflect.DeepEqual(res, []uint64{1}) { - t.Error("Expected equal value to return from cache") - } + assert.DeepEqual(t, []uint64{1}, res) c.AddAggregatorSubnetID(slot, 2) res = c.GetAggregatorSubnetIDs(slot) - if !reflect.DeepEqual(res, []uint64{1, 2}) { - t.Error("Expected equal value to return from cache") - } + assert.DeepEqual(t, []uint64{1, 2}, res) c.AddAggregatorSubnetID(slot, 3) res = c.GetAggregatorSubnetIDs(slot) - if !reflect.DeepEqual(res, []uint64{1, 2, 3}) { - t.Error("Expected equal value to return from cache") - } + assert.DeepEqual(t, []uint64{1, 2, 3}, res) committeeIDs = c.GetAttesterSubnetIDs(slot) - if len(committeeIDs) != 0 { - t.Errorf("Empty cache returned an object: %v", committeeIDs) - } + assert.Equal(t, 0, len(committeeIDs), "Empty cache returned an object") c.AddAttesterSubnetID(slot, 11) res = c.GetAttesterSubnetIDs(slot) - if !reflect.DeepEqual(res, []uint64{11}) { - t.Error("Expected equal value to return from cache") - } + assert.DeepEqual(t, []uint64{11}, res) c.AddAttesterSubnetID(slot, 22) res = c.GetAttesterSubnetIDs(slot) - if !reflect.DeepEqual(res, []uint64{11, 22}) { - t.Error("Expected equal value to return from cache") - } + assert.DeepEqual(t, []uint64{11, 22}, res) c.AddAttesterSubnetID(slot, 33) res = c.GetAttesterSubnetIDs(slot) - if !reflect.DeepEqual(res, []uint64{11, 22, 33}) { - t.Error("Expected equal value to return from cache") - } + assert.DeepEqual(t, []uint64{11, 22, 33}, res) } func TestSubnetIDsCache_PersistentCommitteeRoundtrip(t *testing.T) { @@ -73,12 +59,8 @@ func TestSubnetIDsCache_PersistentCommitteeRoundtrip(t *testing.T) { t.Errorf("Couldn't find entry in cache for pubkey %#x", pubkey) continue } - if idxs[0] != i { - t.Fatalf("Wanted index of %d but got %d", i, idxs[0]) - } + require.Equal(t, i, idxs[0]) } coms := c.GetAllSubnets() - if len(coms) != 20 { - t.Errorf("Number of committees is not %d but is %d", 20, len(coms)) - } + assert.Equal(t, 20, len(coms)) }