mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-30 07:35:07 +02:00
This commit adds a BenchmarkFindOptimalSQLQueryConfig test in the graph/db package which runs ForEachNode and ForEachChannel queries against a local backend using various different values for the sql QueryConfig struct. This is done to determine good default values to use for the config options for sqlite vs postgres.
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
//go:build !test_db_postgres && test_db_sqlite
|
|
|
|
package graphdb
|
|
|
|
import (
|
|
"database/sql"
|
|
"testing"
|
|
|
|
"github.com/btcsuite/btcd/chaincfg"
|
|
"github.com/lightningnetwork/lnd/sqldb"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// NewTestDB is a helper function that creates a SQLStore backed by a SQL
|
|
// database for testing.
|
|
func NewTestDB(t testing.TB) V1Store {
|
|
return NewTestDBWithFixture(t, nil)
|
|
}
|
|
|
|
// NewTestDBFixture is a no-op for the sqlite build.
|
|
func NewTestDBFixture(_ *testing.T) *sqldb.TestPgFixture {
|
|
return nil
|
|
}
|
|
|
|
// NewTestDBWithFixture is a helper function that creates a SQLStore backed by a
|
|
// SQL database for testing.
|
|
func NewTestDBWithFixture(t testing.TB, _ *sqldb.TestPgFixture) V1Store {
|
|
store, err := NewSQLStore(
|
|
&SQLStoreConfig{
|
|
ChainHash: *chaincfg.MainNetParams.GenesisHash,
|
|
QueryCfg: sqldb.DefaultSQLiteConfig(),
|
|
}, newBatchQuerier(t),
|
|
)
|
|
require.NoError(t, err)
|
|
return store
|
|
}
|
|
|
|
// newBatchQuerier creates a new BatchedSQLQueries instance for testing
|
|
// using a SQLite database.
|
|
func newBatchQuerier(t testing.TB) BatchedSQLQueries {
|
|
return newBatchQuerierWithFixture(t, nil)
|
|
}
|
|
|
|
// newBatchQuerierWithFixture creates a new BatchedSQLQueries instance for
|
|
// testing using a SQLite database.
|
|
func newBatchQuerierWithFixture(t testing.TB,
|
|
_ *sqldb.TestPgFixture) BatchedSQLQueries {
|
|
|
|
db := sqldb.NewTestSqliteDB(t).BaseDB
|
|
|
|
return sqldb.NewTransactionExecutor(
|
|
db, func(tx *sql.Tx) SQLQueries {
|
|
return db.WithTx(tx)
|
|
},
|
|
)
|
|
}
|