Skip to content

Commit

Permalink
kvdb: unify how the db backend for tests is set
Browse files Browse the repository at this point in the history
  • Loading branch information
seejee authored and ellemouton committed Jan 23, 2023
1 parent 170160f commit 3d91bb6
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 18 deletions.
30 changes: 17 additions & 13 deletions kvdb/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -247,20 +247,35 @@ func updateLastCompactionDate(dbFile string) error {
func GetTestBackend(path, name string) (Backend, func(), error) {
empty := func() {}

// Note that for tests, we expect only one db backend build flag
// (or none) to be set at a time and thus one of the following switch
// cases should ever be true
switch {
case PostgresBackend:
key := filepath.Join(path, name)
keyHash := sha256.Sum256([]byte(key))

f, err := NewPostgresFixture("test_" + hex.EncodeToString(keyHash[:]))
f, err := NewPostgresFixture("test_" + hex.EncodeToString(
keyHash[:]),
)
if err != nil {
return nil, func() {}, err
}
return f.DB(), func() {
_ = f.DB().Close()
}, nil

case TestBackend == BoltBackendName:
case EtcdBackend:
etcdConfig, cancel, err := StartEtcdTestBackend(path, 0, 0, "")
if err != nil {
return nil, empty, err
}
backend, err := Open(
EtcdBackendName, context.TODO(), etcdConfig,
)
return backend, cancel, err

default:
db, err := GetBoltBackend(&BoltBackendConfig{
DBPath: path,
DBFileName: name,
Expand All @@ -271,17 +286,6 @@ func GetTestBackend(path, name string) (Backend, func(), error) {
return nil, nil, err
}
return db, empty, nil

case TestBackend == EtcdBackendName:
etcdConfig, cancel, err := StartEtcdTestBackend(path, 0, 0, "")
if err != nil {
return nil, empty, err
}
backend, err := Open(
EtcdBackendName, context.TODO(), etcdConfig,
)
return backend, cancel, err

}

return nil, nil, fmt.Errorf("unknown backend")
Expand Down
4 changes: 2 additions & 2 deletions kvdb/kvdb_etcd.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import (
"github.com/lightningnetwork/lnd/kvdb/etcd"
)

// TestBackend is conditionally set to etcd when the kvdb_etcd build tag is
// EtcdBackend is conditionally set to etcd when the kvdb_etcd build tag is
// defined, allowing testing our database code with etcd backend.
const TestBackend = EtcdBackendName
const EtcdBackend = true

// GetEtcdTestBackend creates an embedded etcd backend for testing
// storig the database at the passed path.
Expand Down
6 changes: 3 additions & 3 deletions kvdb/kvdb_no_etcd.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import (
"github.com/lightningnetwork/lnd/kvdb/etcd"
)

// TestBackend is conditionally set to bdb when the kvdb_etcd build tag is
// not defined, allowing testing our database code with bolt backend.
const TestBackend = BoltBackendName
// EtcdBackend is conditionally set to false when the kvdb_etcd build tag is not
// defined. This will allow testing of other database backends.
const EtcdBackend = false

var errEtcdNotAvailable = fmt.Errorf("etcd backend not available")

Expand Down

0 comments on commit 3d91bb6

Please sign in to comment.