diff --git a/kvdb/backend.go b/kvdb/backend.go index 7d4cbc36f..da2161c1c 100644 --- a/kvdb/backend.go +++ b/kvdb/backend.go @@ -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") diff --git a/kvdb/kvdb_etcd.go b/kvdb/kvdb_etcd.go index 017388a3f..2e07d0152 100644 --- a/kvdb/kvdb_etcd.go +++ b/kvdb/kvdb_etcd.go @@ -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. diff --git a/kvdb/kvdb_no_etcd.go b/kvdb/kvdb_no_etcd.go index ad56a3775..79897635b 100644 --- a/kvdb/kvdb_no_etcd.go +++ b/kvdb/kvdb_no_etcd.go @@ -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")