mirror of
https://github.com/glebarez/go-sqlite.git
synced 2025-10-04 23:42:40 +08:00
tests: add a test for issue 97
This commit is contained in:

committed by
glebarez

parent
cd7c386357
commit
d561876d85
30
all_test.go
30
all_test.go
@@ -165,7 +165,35 @@ func TestIssue98(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if _, err := db.Exec("insert into t values (?)", nil); err == nil {
|
if _, err := db.Exec("insert into t values (?)", nil); err == nil {
|
||||||
t.Fatal(errors.New("expected statement to fail"))
|
t.Fatal("expected statement to fail")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://gitlab.com/cznic/sqlite/issues/97
|
||||||
|
func TestIssue97(t *testing.T) {
|
||||||
|
name := filepath.Join(t.TempDir(), "tmp.db")
|
||||||
|
|
||||||
|
db, err := sql.Open(driverName, fmt.Sprintf("file:%s", name))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
if _, err := db.Exec("create table t(b int)"); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
rodb, err := sql.Open(driverName, fmt.Sprintf("file:%s?mode=ro", name))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer rodb.Close()
|
||||||
|
|
||||||
|
_, err = rodb.Exec("drop table t")
|
||||||
|
if err == nil {
|
||||||
|
t.Fatal("expected drop table statement to fail on a read only database")
|
||||||
|
} else if err.Error() != "attempt to write a readonly database (8)" {
|
||||||
|
t.Fatal("expected drop table statement to fail because its a readonly database")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user