github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/db/testing/setup_db.go (about)

     1  // Package testing allows for spinning up a real bolt-db
     2  // instance for unit tests throughout the Prysm repo.
     3  package testing
     4  
     5  import (
     6  	"context"
     7  	"testing"
     8  
     9  	"github.com/prysmaticlabs/prysm/beacon-chain/db"
    10  	"github.com/prysmaticlabs/prysm/beacon-chain/db/iface"
    11  	"github.com/prysmaticlabs/prysm/beacon-chain/db/kv"
    12  	"github.com/prysmaticlabs/prysm/beacon-chain/db/slasherkv"
    13  )
    14  
    15  // SetupDB instantiates and returns database backed by key value store.
    16  func SetupDB(t testing.TB) db.Database {
    17  	s, err := kv.NewKVStore(context.Background(), t.TempDir(), &kv.Config{})
    18  	if err != nil {
    19  		t.Fatal(err)
    20  	}
    21  	t.Cleanup(func() {
    22  		if err := s.Close(); err != nil {
    23  			t.Fatalf("failed to close database: %v", err)
    24  		}
    25  	})
    26  	return s
    27  }
    28  
    29  // SetupSlasherDB --
    30  func SetupSlasherDB(t testing.TB) iface.SlasherDatabase {
    31  	s, err := slasherkv.NewKVStore(context.Background(), t.TempDir(), &slasherkv.Config{})
    32  	if err != nil {
    33  		t.Fatal(err)
    34  	}
    35  	t.Cleanup(func() {
    36  		if err := s.Close(); err != nil {
    37  			t.Fatalf("failed to close database: %v", err)
    38  		}
    39  	})
    40  	return s
    41  }