aboutsummaryrefslogtreecommitdiff
path: root/all_test.go
diff options
context:
space:
mode:
authorJan Mercl <0xjnml@gmail.com>2017-06-25 21:21:16 +0200
committerJan Mercl <0xjnml@gmail.com>2017-06-25 21:21:16 +0200
commit1bfd9f3914275716a35c24effe0abc4af1e42135 (patch)
treeb7d5fe4e6114b1f0f5e4d5b82a52730765f60a7a /all_test.go
parent5c0a7b2d9986629db710a3740a95f368e0c2a671 (diff)
parent48a57de665db990e7fabaf792f7567bb2b622f5a (diff)
Merge branch 'issue12'. Fixes #12.
Diffstat (limited to 'all_test.go')
-rw-r--r--all_test.go38
1 files changed, 37 insertions, 1 deletions
diff --git a/all_test.go b/all_test.go
index ae09653..3406c44 100644
--- a/all_test.go
+++ b/all_test.go
@@ -300,7 +300,7 @@ func TestIssue11(t *testing.T) {
BEGIN;
`,
); err != nil {
- panic(err)
+ t.Fatal(err)
}
for i := 0; i < N; i++ {
@@ -312,3 +312,39 @@ func TestIssue11(t *testing.T) {
t.Fatal(err)
}
}
+
+// https://github.com/cznic/sqlite/issues/12
+func TestMemDB(t *testing.T) {
+ // Verify we can create out-of-the heap memory DB instance.
+ db, err := sql.Open(driverName, "file::memory:")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ defer func() {
+ db.Close()
+ }()
+
+ v := strings.Repeat("a", 1024)
+ if _, err := db.Exec(`
+ create table t(s string);
+ begin;
+ `); err != nil {
+ t.Fatal(err)
+ }
+
+ s, err := db.Prepare("insert into t values(?)")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // Heap used to be fixed at 32MB.
+ for i := 0; i < (64<<20)/len(v); i++ {
+ if _, err := s.Exec(v); err != nil {
+ t.Fatalf("%v * %v= %v: %v", i, len(v), i*len(v), err)
+ }
+ }
+ if _, err := db.Exec(`commit;`); err != nil {
+ t.Fatal(err)
+ }
+}