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 }