diff options
Diffstat (limited to 'sqlite3_opt_serialize_test.go')
-rw-r--r-- | sqlite3_opt_serialize_test.go | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/sqlite3_opt_serialize_test.go b/sqlite3_opt_serialize_test.go deleted file mode 100644 index 5c7efec..0000000 --- a/sqlite3_opt_serialize_test.go +++ /dev/null @@ -1,100 +0,0 @@ -//go:build !libsqlite3 || sqlite_serialize -// +build !libsqlite3 sqlite_serialize - -package sqlite3 - -import ( - "context" - "database/sql" - "os" - "testing" -) - -func TestSerializeDeserialize(t *testing.T) { - // Connect to the source database. - srcTempFilename := TempFilename(t) - defer os.Remove(srcTempFilename) - srcDb, err := sql.Open(driverName, srcTempFilename) - if err != nil { - t.Fatal("Failed to open the source database:", err) - } - defer srcDb.Close() - err = srcDb.Ping() - if err != nil { - t.Fatal("Failed to connect to the source database:", err) - } - - // Connect to the destination database. - destTempFilename := TempFilename(t) - defer os.Remove(destTempFilename) - destDb, err := sql.Open(driverName, destTempFilename) - if err != nil { - t.Fatal("Failed to open the destination database:", err) - } - defer destDb.Close() - err = destDb.Ping() - if err != nil { - t.Fatal("Failed to connect to the destination database:", err) - } - - // Write data to source database. - _, err = srcDb.Exec(`CREATE TABLE foo (name string)`) - if err != nil { - t.Fatal("Failed to create table in source database:", err) - } - _, err = srcDb.Exec(`INSERT INTO foo(name) VALUES("alice")`) - if err != nil { - t.Fatal("Failed to insert data into source database", err) - } - - // Serialize the source database - srcConn, err := srcDb.Conn(context.Background()) - if err != nil { - t.Fatal("Failed to get connection to source database:", err) - } - defer srcConn.Close() - - var serialized []byte - if err := srcConn.Raw(func(raw any) error { - var err error - serialized, err = raw.(*SQLiteConn).Serialize("") - return err - }); err != nil { - t.Fatal("Failed to serialize source database:", err) - } - srcConn.Close() - - // Confirm that the destination database is initially empty. - var destTableCount int - err = destDb.QueryRow("SELECT COUNT(*) FROM sqlite_master WHERE type = 'table'").Scan(&destTableCount) - if err != nil { - t.Fatal("Failed to check the destination table count:", err) - } - if destTableCount != 0 { - t.Fatalf("The destination database is not empty; %v table(s) found.", destTableCount) - } - - // Deserialize to destination database - destConn, err := destDb.Conn(context.Background()) - if err != nil { - t.Fatal("Failed to get connection to destination database:", err) - } - defer destConn.Close() - - if err := destConn.Raw(func(raw any) error { - return raw.(*SQLiteConn).Deserialize(serialized, "") - }); err != nil { - t.Fatal("Failed to deserialize source database:", err) - } - destConn.Close() - - // Confirm that destination database has been loaded correctly. - var destRowCount int - err = destDb.QueryRow(`SELECT COUNT(*) FROM foo`).Scan(&destRowCount) - if err != nil { - t.Fatal("Failed to count rows in destination database table", err) - } - if destRowCount != 1 { - t.Fatalf("Destination table does not have the expected records") - } -} |