kvdb: unify how the db backend for tests is set

This commit is contained in:
Chris Geihsler 2022-12-14 10:07:14 +02:00 committed by Elle Mouton
parent 170160f28a
commit 3d91bb65f7
No known key found for this signature in database
GPG Key ID: D7D916376026F177
3 changed files with 22 additions and 18 deletions

View File

@ -247,12 +247,17 @@ 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
}
@ -260,7 +265,17 @@ func GetTestBackend(path, name string) (Backend, func(), error) {
_ = 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,
@ -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")

View File

@ -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.

View File

@ -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")