diff options
author | EuAndreh <eu@euandre.org> | 2024-10-30 16:36:00 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-11-02 04:21:28 -0300 |
commit | 1fdc3bc11a577e9b8180152554a8a48ce3f815bf (patch) | |
tree | 090afe69f43a34d36662fa0f2ba81f241f1c48ee | |
parent | src/golite.go: Use IMMEDIATE transaction for db.Begin() (diff) | |
download | golite-1fdc3bc11a577e9b8180152554a8a48ce3f815bf.tar.gz golite-1fdc3bc11a577e9b8180152554a8a48ce3f815bf.tar.xz |
src/golite.go: Differentiate InMemory from InMemoryUnsafe
-rw-r--r-- | src/golite.go | 5 | ||||
-rw-r--r-- | tests/golite.go | 87 |
2 files changed, 50 insertions, 42 deletions
diff --git a/src/golite.go b/src/golite.go index 7153766..76e14f7 100644 --- a/src/golite.go +++ b/src/golite.go @@ -1053,8 +1053,9 @@ const ( columnTimestamp string = "timestamp" ) -const InMemory = ":memory:" -const DriverName = "acude" +const InMemoryUnsafe = ":memory:" +const InMemory = "file:mem?mode=memory&cache=shared" +const DriverName = "golite" func init() { sql.Register(DriverName, &SQLiteDriver{}) } diff --git a/tests/golite.go b/tests/golite.go index 2c7fe6c..3b6c11e 100644 --- a/tests/golite.go +++ b/tests/golite.go @@ -123,6 +123,7 @@ func testBackup(t *testing.T, testRowCount int, usePerPageSteps bool) { 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) } @@ -139,6 +140,7 @@ func testBackup(t *testing.T, testRowCount int, usePerPageSteps bool) { if err != nil { t.Fatal("Unable to perform an initial 0-page backup step:", err) } + if isDone { t.Fatal("Backup is unexpectedly done.") } @@ -148,10 +150,12 @@ func testBackup(t *testing.T, testRowCount int, usePerPageSteps bool) { if initialPageCount <= 0 { t.Fatalf("Unexpected initial page count value: %v", initialPageCount) } + initialRemaining := backup.Remaining() if initialRemaining <= 0 { t.Fatalf("Unexpected initial remaining value: %v", initialRemaining) } + if initialRemaining != initialPageCount { t.Fatalf("Initial remaining value differs from the initial page count value; remaining: %v; page count: %v", initialRemaining, initialPageCount) } @@ -198,6 +202,7 @@ func testBackup(t *testing.T, testRowCount int, usePerPageSteps bool) { if err != nil { t.Fatal("Failed to perform a backup step:", err) } + if !isDone { t.Fatal("Backup is unexpectedly not done.") } @@ -208,6 +213,7 @@ func testBackup(t *testing.T, testRowCount int, usePerPageSteps bool) { if finalPageCount != initialPageCount { t.Fatalf("Final page count differs from the initial page count; initial page count: %v; final page count: %v", initialPageCount, finalPageCount) } + finalRemaining := backup.Remaining() if finalRemaining != 0 { t.Fatalf("Unexpected remaining value: %v", finalRemaining) @@ -235,6 +241,7 @@ func testBackup(t *testing.T, testRowCount int, usePerPageSteps bool) { if err != nil { t.Fatal("Failed to determine the rowcount of the \"test\" table in the destination database:", err) } + if testRowCount != actualTestTableRowCount { t.Fatalf("Unexpected destination \"test\" table row count; expected: %v; found: %v", testRowCount, actualTestTableRowCount) } @@ -276,7 +283,7 @@ func TestBackupError(t *testing.T) { }) // Connect to the database. - db, err := sql.Open(driverName, InMemory) + db, err := sql.Open(driverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open the database:", err) } @@ -448,7 +455,7 @@ func TestSqlLogicErrors(t *testing.T) { } defer os.RemoveAll(dirName) - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Error(err) } @@ -474,7 +481,7 @@ func TestExtendedErrorCodes_ForeignKey(t *testing.T) { } defer os.RemoveAll(dirName) - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Error(err) } @@ -514,7 +521,7 @@ func TestExtendedErrorCodes_NotNull(t *testing.T) { } defer os.RemoveAll(dirName) - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Error(err) } @@ -564,7 +571,7 @@ func TestExtendedErrorCodes_Unique(t *testing.T) { } defer os.RemoveAll(dirName) - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Error(err) } @@ -645,7 +652,7 @@ func TestError_SystemErrno(t *testing.T) { } func TestBeginTxCancel(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -704,7 +711,7 @@ func TestBeginTxCancel(t *testing.T) { } func TestStmtReadonly(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -745,7 +752,7 @@ func TestStmtReadonly(t *testing.T) { } func TestNamedParams(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -835,7 +842,7 @@ func initDatabase(t *testing.T, db *sql.DB, rowCount int64) { } func TestShortTimeout(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -980,7 +987,7 @@ func TestQueryRowContextCancelParallel(t *testing.T) { } func TestExecCancel(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -1161,7 +1168,7 @@ func TestFileCopyTruncate(t *testing.T) { func TestColumnTableName(t *testing.T) { d := SQLiteDriver{} - conn, err := d.Open(InMemory) + conn, err := d.Open(InMemoryUnsafe) if err != nil { t.Fatal("failed to get database connection:", err) } @@ -1194,7 +1201,7 @@ func TestColumnTableName(t *testing.T) { } func TestFTS5(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -1788,7 +1795,7 @@ func TestDeferredForeignKey(t *testing.T) { } func TestClose(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -1812,7 +1819,7 @@ func TestClose(t *testing.T) { } func TestInsert(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -1853,7 +1860,7 @@ func TestUpsert(t *testing.T) { if n < 3024000 { t.Skip("UPSERT requires sqlite3 >= 3.24.0") } - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -1896,7 +1903,7 @@ func TestUpsert(t *testing.T) { } func TestUpdate(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -1959,7 +1966,7 @@ func TestUpdate(t *testing.T) { } func TestDelete(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2018,7 +2025,7 @@ func TestDelete(t *testing.T) { } func TestBooleanRoundtrip(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2067,7 +2074,7 @@ func TestBooleanRoundtrip(t *testing.T) { func timezone(t time.Time) string { return t.Format("-07:00") } func TestTimestamp(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2167,7 +2174,7 @@ func TestTimestamp(t *testing.T) { } func TestBoolean(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2257,7 +2264,7 @@ func TestBoolean(t *testing.T) { } func TestFloat32(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2292,7 +2299,7 @@ func TestFloat32(t *testing.T) { } func TestNull(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2321,7 +2328,7 @@ func TestNull(t *testing.T) { } func TestTransaction(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2378,7 +2385,7 @@ func TestTransaction(t *testing.T) { } func TestWAL(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2512,7 +2519,7 @@ func TestTimezoneConversion(t *testing.T) { // TODO: Execer & Queryer currently disabled // https://github.com/mattn/go-sqlite3/issues/82 func TestExecer(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2530,7 +2537,7 @@ func TestExecer(t *testing.T) { } func TestQueryer(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2579,7 +2586,7 @@ func TestQueryer(t *testing.T) { } func TestStress(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2681,7 +2688,7 @@ func TestVersion(t *testing.T) { } func TestStringContainingZero(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2739,7 +2746,7 @@ func (t TimeStamp) Value() (driver.Value, error) { } func TestDateTimeNow(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2773,7 +2780,7 @@ func TestAggregatorRegistration(t *testing.T) { return conn.RegisterAggregator("customSum", customSum, true) }, }) - db, err := sql.Open("sqlite3_AggregatorRegistration", InMemory) + db, err := sql.Open("sqlite3_AggregatorRegistration", InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2840,7 +2847,7 @@ func TestAggregatorRegistration_GenericReturn(t *testing.T) { return conn.RegisterAggregator("mode", newMode, true) }, }) - db, err := sql.Open("sqlite3_AggregatorRegistration_GenericReturn", InMemory) + db, err := sql.Open("sqlite3_AggregatorRegistration_GenericReturn", InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2897,7 +2904,7 @@ func TestCollationRegistration(t *testing.T) { }, }) - db, err := sql.Open("sqlite3_CollationRegistration", InMemory) + db, err := sql.Open("sqlite3_CollationRegistration", InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -2991,7 +2998,7 @@ func TestDeclTypes(t *testing.T) { d := SQLiteDriver{} - conn, err := d.Open(InMemory) + conn, err := d.Open(InMemoryUnsafe) if err != nil { t.Fatal("Failed to begin transaction:", err) } @@ -3023,7 +3030,7 @@ func TestDeclTypes(t *testing.T) { } func TestPinger(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -3057,7 +3064,7 @@ func TestUpdateAndTransactionHooks(t *testing.T) { return nil }, }) - db, err := sql.Open("sqlite3_UpdateHook", InMemory) + db, err := sql.Open("sqlite3_UpdateHook", InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -3134,7 +3141,7 @@ func TestSetFileControlInt(t *testing.T) { } func TestNonColumnString(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -3154,7 +3161,7 @@ func TestNonColumnString(t *testing.T) { } func TestNilAndEmptyBytes(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -3209,7 +3216,7 @@ func TestNilAndEmptyBytes(t *testing.T) { } func TestInsertNilByteSlice(t *testing.T) { - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal(err) } @@ -3230,7 +3237,7 @@ func TestInsertNilByteSlice(t *testing.T) { func TestNamedParam(t *testing.T) { tempFilename := TempFilename(t) defer os.Remove(tempFilename) - db, err := sql.Open(DriverName, InMemory) + db, err := sql.Open(DriverName, InMemoryUnsafe) if err != nil { t.Fatal("Failed to open database:", err) } @@ -3585,7 +3592,7 @@ func testExecEmptyQuery(t *testing.T) { func MainTest() { - tests := []testing.InternalTest { + tests := []testing.InternalTest{ { "TestBackupStepByStep", TestBackupStepByStep }, { "TestBackupAllRemainingPages", TestBackupAllRemainingPages }, { "TestBackupError", TestBackupError }, |