From da2bf8a0f356364fb8189a5a276b5acf77839d30 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 24 Feb 2015 11:27:09 +0900 Subject: Add FTS3 feature. Close #176 --- sqlite3_fts3_test.go | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 sqlite3_fts3_test.go (limited to 'sqlite3_fts3_test.go') diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go new file mode 100644 index 0000000..a1cd217 --- /dev/null +++ b/sqlite3_fts3_test.go @@ -0,0 +1,83 @@ +// Copyright (C) 2015 Yasuhiro Matsumoto . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +package sqlite3 + +import ( + "database/sql" + "os" + "testing" +) + +func TestFTS3(t *testing.T) { + tempFilename := TempFilename() + db, err := sql.Open("sqlite3", tempFilename) + if err != nil { + t.Fatal("Failed to open database:", err) + } + defer os.Remove(tempFilename) + defer db.Close() + + _, err = db.Exec("DROP TABLE foo") + _, err = db.Exec("CREATE VIRTUAL TABLE foo USING fts3(id INTEGER PRIMARY KEY, value TEXT)") + if err != nil { + t.Fatal("Failed to create table:", err) + } + + _, err = db.Exec("INSERT INTO foo(id, value) VALUES(?, ?)", 1, `今日の 晩御飯は 天麩羅よ`) + if err != nil { + t.Fatal("Failed to insert value:", err) + } + + _, err = db.Exec("INSERT INTO foo(id, value) VALUES(?, ?)", 2, `今日は いい 天気だ`) + if err != nil { + t.Fatal("Failed to insert value:", err) + } + + rows, err := db.Query("SELECT id, value FROM foo WHERE value MATCH '今日* 天*'") + if err != nil { + t.Fatal("Unable to query foo table:", err) + } + defer rows.Close() + + for rows.Next() { + var id int + var value string + + if err := rows.Scan(&id, &value); err != nil { + t.Error("Unable to scan results:", err) + continue + } + + if id == 1 && value != `今日の 晩御飯は 天麩羅よ` { + t.Error("Value for id 1 should be `今日の 晩御飯は 天麩羅よ`, but:", value) + } else if id == 2 && value != `今日は いい 天気だ` { + t.Error("Value for id 2 should be `今日は いい 天気だ`, but:", value) + } + } + + rows, err = db.Query("SELECT value FROM foo WHERE value MATCH '今日* 天麩羅*'") + if err != nil { + t.Fatal("Unable to query foo table:", err) + } + defer rows.Close() + + var value string + if !rows.Next() { + t.Fatal("Result should be only one") + } + + if err := rows.Scan(&value); err != nil { + t.Fatal("Unable to scan results:", err) + } + + if value != `今日の 晩御飯は 天麩羅よ` { + t.Fatal("Value should be `今日の 晩御飯は 天麩羅よ`, but:", value) + } + + if rows.Next() { + t.Fatal("Result should be only one") + } +} -- cgit v1.2.3 From cebbf42ff60a87f038ef03b3c5734817d41ef0d6 Mon Sep 17 00:00:00 2001 From: Lars Buitinck Date: Fri, 5 Jun 2015 16:02:14 +0200 Subject: Get reliable tempfile names from ioutil.TempFile Also makes them easier to spot (the tests tend to litter /tmp). --- sqlite3_fts3_test.go | 2 +- sqlite3_test.go | 55 ++++++++++++++++++++++++++-------------------------- 2 files changed, 29 insertions(+), 28 deletions(-) (limited to 'sqlite3_fts3_test.go') diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go index a1cd217..716a106 100644 --- a/sqlite3_fts3_test.go +++ b/sqlite3_fts3_test.go @@ -12,7 +12,7 @@ import ( ) func TestFTS3(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) diff --git a/sqlite3_test.go b/sqlite3_test.go index 423f30e..ee1ba0c 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -6,15 +6,13 @@ package sqlite3 import ( - "crypto/rand" "database/sql" "database/sql/driver" - "encoding/hex" "errors" "fmt" + "io/ioutil" "net/url" "os" - "path/filepath" "strings" "testing" "time" @@ -22,15 +20,18 @@ import ( "github.com/mattn/go-sqlite3/sqlite3_test" ) -func TempFilename() string { - randBytes := make([]byte, 16) - rand.Read(randBytes) - return filepath.Join(os.TempDir(), "foo"+hex.EncodeToString(randBytes)+".db") +func TempFilename(t *testing.T) string { + f, err := ioutil.TempFile("", "go-sqlite3-test-") + if err != nil { + t.Fatal(err) + } + f.Close() + return f.Name() } func doTestOpen(t *testing.T, option string) (string, error) { var url string - tempFilename := TempFilename() + tempFilename := TempFilename(t) if option != "" { url = tempFilename + option } else { @@ -82,7 +83,7 @@ func TestOpen(t *testing.T) { } func TestClose(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -108,7 +109,7 @@ func TestClose(t *testing.T) { } func TestInsert(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -147,7 +148,7 @@ func TestInsert(t *testing.T) { } func TestUpdate(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -212,7 +213,7 @@ func TestUpdate(t *testing.T) { } func TestDelete(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -273,7 +274,7 @@ func TestDelete(t *testing.T) { } func TestBooleanRoundtrip(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -322,7 +323,7 @@ func TestBooleanRoundtrip(t *testing.T) { } func TestTimestamp(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -405,7 +406,7 @@ func TestTimestamp(t *testing.T) { } func TestBoolean(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -497,7 +498,7 @@ func TestBoolean(t *testing.T) { } func TestFloat32(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -535,7 +536,7 @@ func TestFloat32(t *testing.T) { } func TestNull(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -567,7 +568,7 @@ func TestNull(t *testing.T) { } func TestTransaction(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -627,7 +628,7 @@ func TestTransaction(t *testing.T) { } func TestWAL(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -675,7 +676,7 @@ func TestWAL(t *testing.T) { func TestTimezoneConversion(t *testing.T) { zones := []string{"UTC", "US/Central", "US/Pacific", "Local"} for _, tz := range zones { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename+"?_loc="+url.QueryEscape(tz)) if err != nil { t.Fatal("Failed to open database:", err) @@ -781,7 +782,7 @@ func TestSuite(t *testing.T) { // TODO: Execer & Queryer currently disabled // https://github.com/mattn/go-sqlite3/issues/82 func TestExecer(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -801,7 +802,7 @@ func TestExecer(t *testing.T) { } func TestQueryer(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -842,7 +843,7 @@ func TestQueryer(t *testing.T) { } func TestStress(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -880,7 +881,7 @@ func TestStress(t *testing.T) { func TestDateTimeLocal(t *testing.T) { zone := "Asia/Tokyo" - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename+"?_loc="+zone) if err != nil { t.Fatal("Failed to open database:", err) @@ -947,7 +948,7 @@ func TestVersion(t *testing.T) { } func TestNumberNamedParams(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -983,7 +984,7 @@ func TestNumberNamedParams(t *testing.T) { } func TestStringContainingZero(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -1043,7 +1044,7 @@ func (t TimeStamp) Value() (driver.Value, error) { } func TestDateTimeNow(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) -- cgit v1.2.3 From b808f01f660667b1510acf216aa2b9fe7f555ddb Mon Sep 17 00:00:00 2001 From: looi Date: Sun, 20 Sep 2015 10:07:23 -0600 Subject: Add FTS4 unicode61 tokenizer support --- sqlite3.go | 2 +- sqlite3_fts3_test.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) (limited to 'sqlite3_fts3_test.go') diff --git a/sqlite3.go b/sqlite3.go index f524d17..d56bed3 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -8,7 +8,7 @@ package sqlite3 /* #cgo CFLAGS: -std=gnu99 #cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE -#cgo CFLAGS: -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS +#cgo CFLAGS: -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4_UNICODE61 #include #include #include diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go index a1cd217..884ca4c 100644 --- a/sqlite3_fts3_test.go +++ b/sqlite3_fts3_test.go @@ -81,3 +81,47 @@ func TestFTS3(t *testing.T) { t.Fatal("Result should be only one") } } + +func TestFTS4(t *testing.T) { + tempFilename := TempFilename() + db, err := sql.Open("sqlite3", tempFilename) + if err != nil { + t.Fatal("Failed to open database:", err) + } + defer os.Remove(tempFilename) + defer db.Close() + + _, err = db.Exec("DROP TABLE foo") + _, err = db.Exec("CREATE VIRTUAL TABLE foo USING fts4(tokenize=unicode61, id INTEGER PRIMARY KEY, value TEXT)") + if err != nil { + t.Fatal("Failed to create table:", err) + } + + _, err = db.Exec("INSERT INTO foo(id, value) VALUES(?, ?)", 1, `février`) + if err != nil { + t.Fatal("Failed to insert value:", err) + } + + rows, err := db.Query("SELECT value FROM foo WHERE value MATCH 'fevrier'") + if err != nil { + t.Fatal("Unable to query foo table:", err) + } + defer rows.Close() + + var value string + if !rows.Next() { + t.Fatal("Result should be only one") + } + + if err := rows.Scan(&value); err != nil { + t.Fatal("Unable to scan results:", err) + } + + if value != `février` { + t.Fatal("Value should be `février`, but:", value) + } + + if rows.Next() { + t.Fatal("Result should be only one") + } +} -- cgit v1.2.3 From 59f20de728c91fc2a6593419074299398d8358b4 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Mon, 2 Nov 2015 11:56:49 +0900 Subject: fix tests --- sqlite3_fts3_test.go | 2 +- sqlite3_test.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'sqlite3_fts3_test.go') diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go index beb5ada..87b4db8 100644 --- a/sqlite3_fts3_test.go +++ b/sqlite3_fts3_test.go @@ -83,7 +83,7 @@ func TestFTS3(t *testing.T) { } func TestFTS4(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) diff --git a/sqlite3_test.go b/sqlite3_test.go index 90bee51..22b9c21 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -13,7 +13,6 @@ import ( "io/ioutil" "net/url" "os" - "path/filepath" "reflect" "regexp" "strings" @@ -796,7 +795,7 @@ func TestTimezoneConversion(t *testing.T) { } func TestSuite(t *testing.T) { - tempFilename := TempFilename() + tempFilename := TempFilename(t) db, err := sql.Open("sqlite3", tempFilename+"?_busy_timeout=99999") if err != nil { t.Fatal(err) -- cgit v1.2.3 From 21637a6531000298cf4a2d622e7d049a289df9ef Mon Sep 17 00:00:00 2001 From: Lars Buitinck Date: Tue, 3 Nov 2015 13:52:28 +0100 Subject: Clean up tempfiles in tests "go test" leaves no more clutter in /tmp. --- sqlite3_fts3_test.go | 4 ++-- sqlite3_test.go | 42 +++++++++++++++++++++--------------------- 2 files changed, 23 insertions(+), 23 deletions(-) (limited to 'sqlite3_fts3_test.go') diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go index 87b4db8..803afbd 100644 --- a/sqlite3_fts3_test.go +++ b/sqlite3_fts3_test.go @@ -13,11 +13,11 @@ import ( func TestFTS3(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("DROP TABLE foo") @@ -84,11 +84,11 @@ func TestFTS3(t *testing.T) { func TestFTS4(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("DROP TABLE foo") diff --git a/sqlite3_test.go b/sqlite3_test.go index dfe1c43..9efd313 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -109,11 +109,11 @@ func TestReadonly(t *testing.T) { func TestClose(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) _, err = db.Exec("drop table foo") _, err = db.Exec("create table foo (id integer)") @@ -135,11 +135,11 @@ func TestClose(t *testing.T) { func TestInsert(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("drop table foo") @@ -174,11 +174,11 @@ func TestInsert(t *testing.T) { func TestUpdate(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("drop table foo") @@ -239,11 +239,11 @@ func TestUpdate(t *testing.T) { func TestDelete(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("drop table foo") @@ -300,11 +300,11 @@ func TestDelete(t *testing.T) { func TestBooleanRoundtrip(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("DROP TABLE foo") @@ -351,11 +351,11 @@ func timezone(t time.Time) string { return t.Format("-07:00") } func TestTimestamp(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("DROP TABLE foo") @@ -452,12 +452,12 @@ func TestTimestamp(t *testing.T) { func TestBoolean(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("CREATE TABLE foo(id INTEGER, fbool BOOLEAN)") @@ -544,12 +544,11 @@ func TestBoolean(t *testing.T) { func TestFloat32(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("CREATE TABLE foo(id INTEGER)") @@ -582,12 +581,11 @@ func TestFloat32(t *testing.T) { func TestNull(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - - defer os.Remove(tempFilename) defer db.Close() rows, err := db.Query("SELECT 3.141592") @@ -614,12 +612,11 @@ func TestNull(t *testing.T) { func TestTransaction(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("CREATE TABLE foo(id INTEGER)") @@ -674,13 +671,13 @@ func TestTransaction(t *testing.T) { func TestWAL(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - - defer os.Remove(tempFilename) defer db.Close() + if _, err = db.Exec("PRAGMA journal_mode=WAL;"); err != nil { t.Fatal("Failed to Exec PRAGMA journal_mode:", err) } @@ -722,11 +719,11 @@ func TestTimezoneConversion(t *testing.T) { zones := []string{"UTC", "US/Central", "US/Pacific", "Local"} for _, tz := range zones { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename+"?_loc="+url.QueryEscape(tz)) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec("DROP TABLE foo") @@ -816,11 +813,11 @@ func TestTimezoneConversion(t *testing.T) { func TestSuite(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename+"?_busy_timeout=99999") if err != nil { t.Fatal(err) } - defer os.Remove(tempFilename) defer db.Close() sqlite3_test.RunTests(t, db, sqlite3_test.SQLITE) @@ -830,11 +827,11 @@ func TestSuite(t *testing.T) { // https://github.com/mattn/go-sqlite3/issues/82 func TestExecer(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec(` @@ -850,11 +847,11 @@ func TestExecer(t *testing.T) { func TestQueryer(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec(` @@ -891,6 +888,7 @@ func TestQueryer(t *testing.T) { func TestStress(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) @@ -929,6 +927,7 @@ func TestStress(t *testing.T) { func TestDateTimeLocal(t *testing.T) { zone := "Asia/Tokyo" tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename+"?_loc="+zone) if err != nil { t.Fatal("Failed to open database:", err) @@ -996,11 +995,11 @@ func TestVersion(t *testing.T) { func TestNumberNamedParams(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec(` @@ -1032,11 +1031,11 @@ func TestNumberNamedParams(t *testing.T) { func TestStringContainingZero(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) } - defer os.Remove(tempFilename) defer db.Close() _, err = db.Exec(` @@ -1092,6 +1091,7 @@ func (t TimeStamp) Value() (driver.Value, error) { func TestDateTimeNow(t *testing.T) { tempFilename := TempFilename(t) + defer os.Remove(tempFilename) db, err := sql.Open("sqlite3", tempFilename) if err != nil { t.Fatal("Failed to open database:", err) -- cgit v1.2.3