aboutsummaryrefslogtreecommitdiff
path: root/sqlite3_test.go
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2017-04-02 23:13:39 +0900
committerGitHub <noreply@github.com>2017-04-02 23:13:39 +0900
commit46e826d22aebbfda29523e86e3114c2beb4dab43 (patch)
tree6de160270401a6a76dee24bf425928ee6fa5ee17 /sqlite3_test.go
parentMerge pull request #406 from zombiezen/fixleak (diff)
parentAdd _foreign_keys connection parameter (diff)
downloadgolite-46e826d22aebbfda29523e86e3114c2beb4dab43.tar.gz
golite-46e826d22aebbfda29523e86e3114c2beb4dab43.tar.xz
Merge pull request #407 from zombiezen/foreignkeys
Add _foreign_keys connection parameter
Diffstat (limited to 'sqlite3_test.go')
-rw-r--r--sqlite3_test.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/sqlite3_test.go b/sqlite3_test.go
index e844f82..03b678d 100644
--- a/sqlite3_test.go
+++ b/sqlite3_test.go
@@ -107,6 +107,35 @@ func TestReadonly(t *testing.T) {
}
}
+func TestForeignKeys(t *testing.T) {
+ cases := map[string]bool{
+ "?_foreign_keys=1": true,
+ "?_foreign_keys=0": false,
+ }
+ for option, want := range cases {
+ fname := TempFilename(t)
+ uri := "file:" + fname + option
+ db, err := sql.Open("sqlite3", uri)
+ if err != nil {
+ os.Remove(fname)
+ t.Errorf("sql.Open(\"sqlite3\", %q): %v", uri, err)
+ continue
+ }
+ var enabled bool
+ err = db.QueryRow("PRAGMA foreign_keys;").Scan(&enabled)
+ db.Close()
+ os.Remove(fname)
+ if err != nil {
+ t.Errorf("query foreign_keys for %s: %v", uri, err)
+ continue
+ }
+ if enabled != want {
+ t.Errorf("\"PRAGMA foreign_keys;\" for %q = %t; want %t", uri, enabled, want)
+ continue
+ }
+ }
+}
+
func TestClose(t *testing.T) {
tempFilename := TempFilename(t)
defer os.Remove(tempFilename)