diff options
author | mattn <mattn.jp@gmail.com> | 2017-04-02 23:13:39 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-02 23:13:39 +0900 |
commit | 46e826d22aebbfda29523e86e3114c2beb4dab43 (patch) | |
tree | 6de160270401a6a76dee24bf425928ee6fa5ee17 /sqlite3_test.go | |
parent | Merge pull request #406 from zombiezen/fixleak (diff) | |
parent | Add _foreign_keys connection parameter (diff) | |
download | golite-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.go | 29 |
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) |