Skip to content

Commit d1a5c54

Browse files
committed
add test for blockParentRootIndicesBucket
1 parent 7a64b6a commit d1a5c54

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

beacon-chain/db/kv/blocks.go

+9
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,15 @@ func (s *Store) DeleteBlock(ctx context.Context, root [32]byte) error {
236236
}
237237

238238
// DeleteHistoricalDataBeforeSlot deletes all blocks and states before the given slot.
239+
// This function deletes data from the following buckets:
240+
// - blocksBucket
241+
// - blockParentRootIndicesBucket
242+
// - finalizedBlockRootsIndexBucket
243+
// - stateBucket
244+
// - stateSummaryBucket
245+
// - blockRootValidatorHashesBucket
246+
// - blockSlotIndicesBucket
247+
// - stateSlotIndicesBucket
239248
func (s *Store) DeleteHistoricalDataBeforeSlot(ctx context.Context, cutoffSlot primitives.Slot) error {
240249
ctx, span := trace.StartSpan(ctx, "BeaconDB.DeleteHistoricalDataBeforeSlot")
241250
defer span.End()

beacon-chain/db/kv/blocks_test.go

+22
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,13 @@ func TestStore_HistoricalDataBeforeSlot(t *testing.T) {
454454
// Verify block does not exist
455455
assert.Equal(t, false, db.HasBlock(ctx, root))
456456

457+
// Verify block parent root does not exist
458+
err = db.db.View(func(tx *bolt.Tx) error {
459+
require.Equal(t, 0, len(tx.Bucket(blockParentRootIndicesBucket).Get(root[:])))
460+
return nil
461+
})
462+
require.NoError(t, err)
463+
457464
// Verify state is deleted
458465
hasState := db.HasState(ctx, root)
459466
assert.Equal(t, false, hasState)
@@ -491,6 +498,15 @@ func TestStore_HistoricalDataBeforeSlot(t *testing.T) {
491498
// Verify block exists
492499
assert.Equal(t, true, db.HasBlock(ctx, root))
493500

501+
// Verify remaining block parent root exists, except last slot since we store parent roots of each block.
502+
if i < slotsPerEpoch*4-1 {
503+
err = db.db.View(func(tx *bolt.Tx) error {
504+
require.NotNil(t, tx.Bucket(blockParentRootIndicesBucket).Get(root[:]), fmt.Sprintf("Expected block parent index to be deleted, slot: %d", i))
505+
return nil
506+
})
507+
require.NoError(t, err)
508+
}
509+
494510
// Verify state exists
495511
hasState := db.HasState(ctx, root)
496512
assert.Equal(t, true, hasState)
@@ -515,6 +531,12 @@ func TestStore_HistoricalDataBeforeSlot(t *testing.T) {
515531
valsActual, err := db.validatorEntries(ctx, root)
516532
require.NoError(t, err)
517533
assert.NotNil(t, valsActual)
534+
535+
// Verify remaining validator hashes for block roots exists
536+
err = db.db.View(func(tx *bolt.Tx) error {
537+
assert.NotNil(t, tx.Bucket(blockRootValidatorHashesBucket).Get(root[:]))
538+
return nil
539+
})
518540
}
519541
}
520542

0 commit comments

Comments
 (0)