sqldb/v2: move Sqlite test helpers to separate file
What changed, and why it matters
This commit simply moves three SQLite test helper functions from one file to a new file. It is a code organization change with no functional changes to the actual Lightning Network node software. There is no security issue here.
No security action required. This is a benign refactoring commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit refactors sqldb/v2/sqlite.go by extracting test-only helper functions (NewTestSqliteDB, NewTestSqliteDBFromPath, NewTestSqliteDBWithVersion) into a new file sqldb/v2/sqlite_test_utils.go. The new file includes build tags excluding certain architectures (JS, Windows ARM/386, Linux PPC64/MIPS variants) and imports testing and testify/require. The moved code is identical to the removed code. No production logic was modified.
Changed components
sqldb/v2/sqlite.gosqldb/v2/sqlite_test_utils.goInspect captured patch +86 / −78
diff --git a/sqldb/v2/sqlite.go b/sqldb/v2/sqlite.go
index f258e78..335f099 100644
--- a/sqldb/v2/sqlite.go
+++ b/sqldb/v2/sqlite.go
@@ -6,14 +6,11 @@ import (
"database/sql"
"fmt"
"net/url"
- "path/filepath"
- "testing"
"time"
"github.com/golang-migrate/migrate/v4"
sqlite_migrate "github.com/golang-migrate/migrate/v4/database/sqlite"
"github.com/lightningnetwork/lnd/fn/v2"
- "github.com/stretchr/testify/require"
_ "modernc.org/sqlite" // Register relevant drivers.
)
@@ -311,78 +308,3 @@ func (s *SqliteStore) SetSchemaVersion(version int, dirty bool) error {
return driver.SetVersion(version, dirty)
}
-
-// NewTestSqliteDB is a helper function that creates an SQLite database for
-// testing.
-func NewTestSqliteDB(t testing.TB, sets []MigrationSet) *SqliteStore {
- t.Helper()
-
- t.Logf("Creating new SQLite DB for testing")
-
- // TODO(roasbeef): if we pass :memory: for the file name, then we get
- // an in mem version to speed up tests
- dbFileName := filepath.Join(t.TempDir(), "tmp.db")
- sqlDB, err := NewSqliteStore(&SqliteConfig{
- SkipMigrations: false,
- }, dbFileName)
- require.NoError(t, err)
-
- require.NoError(t, ApplyAllMigrations(sqlDB, sets))
-
- t.Cleanup(func() {
- require.NoError(t, sqlDB.DB.Close())
- })
-
- return sqlDB
-}
-
-// NewTestSqliteDBFromPath is a helper function that creates a SQLite database
-// for testing from a given database file path.
-func NewTestSqliteDBFromPath(t *testing.T, dbPath string,
- sets []MigrationSet) *SqliteStore {
-
- t.Helper()
-
- t.Logf("Creating new SQLite DB for testing, using DB path %s", dbPath)
-
- sqlDB, err := NewSqliteStore(&SqliteConfig{
- SkipMigrations: false,
- }, dbPath)
- require.NoError(t, err)
-
- require.NoError(t, ApplyAllMigrations(sqlDB, sets))
-
- t.Cleanup(func() {
- require.NoError(t, sqlDB.DB.Close())
- })
-
- return sqlDB
-}
-
-// NewTestSqliteDBWithVersion is a helper function that creates an SQLite
-// database for testing and migrates it to the given version.
-func NewTestSqliteDBWithVersion(t *testing.T, set MigrationSet,
- version uint) *SqliteStore {
-
- t.Helper()
-
- t.Logf("Creating new SQLite DB for testing, migrating to version %d",
- version)
-
- // TODO(roasbeef): if we pass :memory: for the file name, then we get
- // an in mem version to speed up tests
- dbFileName := filepath.Join(t.TempDir(), "tmp.db")
- sqlDB, err := NewSqliteStore(&SqliteConfig{
- SkipMigrations: true,
- }, dbFileName)
- require.NoError(t, err)
-
- err = sqlDB.ExecuteMigrations(TargetVersion(version), set)
- require.NoError(t, err)
-
- t.Cleanup(func() {
- require.NoError(t, sqlDB.DB.Close())
- })
-
- return sqlDB
-}
diff --git a/sqldb/v2/sqlite_test_utils.go b/sqldb/v2/sqlite_test_utils.go
new file mode 100644
index 0000000..849fbae
--- /dev/null
+++ b/sqldb/v2/sqlite_test_utils.go
@@ -0,0 +1,86 @@
+//go:build !js && !(windows && (arm || 386)) && !(linux && (ppc64 || mips || mipsle || mips64))
+
+package sqldb
+
+import (
+ "path/filepath"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+ _ "modernc.org/sqlite" // Register relevant drivers.
+)
+
+// NewTestSqliteDB is a helper function that creates an SQLite database for
+// testing.
+func NewTestSqliteDB(t testing.TB, sets []MigrationSet) *SqliteStore {
+ t.Helper()
+
+ t.Logf("Creating new SQLite DB for testing")
+
+ // TODO(roasbeef): if we pass :memory: for the file name, then we get
+ // an in mem version to speed up tests
+ dbFileName := filepath.Join(t.TempDir(), "tmp.db")
+ sqlDB, err := NewSqliteStore(&SqliteConfig{
+ SkipMigrations: false,
+ }, dbFileName)
+ require.NoError(t, err)
+
+ require.NoError(t, ApplyAllMigrations(sqlDB, sets))
+
+ t.Cleanup(func() {
+ require.NoError(t, sqlDB.DB.Close())
+ })
+
+ return sqlDB
+}
+
+// NewTestSqliteDBFromPath is a helper function that creates a SQLite database
+// for testing from a given database file path.
+func NewTestSqliteDBFromPath(t *testing.T, dbPath string,
+ sets []MigrationSet) *SqliteStore {
+
+ t.Helper()
+
+ t.Logf("Creating new SQLite DB for testing, using DB path %s", dbPath)
+
+ sqlDB, err := NewSqliteStore(&SqliteConfig{
+ SkipMigrations: false,
+ }, dbPath)
+ require.NoError(t, err)
+
+ require.NoError(t, ApplyAllMigrations(sqlDB, sets))
+
+ t.Cleanup(func() {
+ require.NoError(t, sqlDB.DB.Close())
+ })
+
+ return sqlDB
+}
+
+// NewTestSqliteDBWithVersion is a helper function that creates an SQLite
+// database for testing and migrates it to the given version.
+func NewTestSqliteDBWithVersion(t *testing.T, set MigrationSet,
+ version uint) *SqliteStore {
+
+ t.Helper()
+
+ t.Logf("Creating new SQLite DB for testing, migrating to version %d",
+ version)
+
+ // TODO(roasbeef): if we pass :memory: for the file name, then we get
+ // an in mem version to speed up tests
+ dbFileName := filepath.Join(t.TempDir(), "tmp.db")
+ sqlDB, err := NewSqliteStore(&SqliteConfig{
+ SkipMigrations: true,
+ }, dbFileName)
+ require.NoError(t, err)
+
+ err = sqlDB.ExecuteMigrations(TargetVersion(version), set)
+ require.NoError(t, err)
+
+ t.Cleanup(func() {
+ require.NoError(t, sqlDB.DB.Close())
+ })
+
+ return sqlDB
+}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.