diff options
author | mattn <mattn.jp@gmail.com> | 2014-07-16 17:44:23 +0900 |
---|---|---|
committer | mattn <mattn.jp@gmail.com> | 2014-07-16 17:44:23 +0900 |
commit | 07b39a049e5d1fbb445c163dc7d7955a203688e3 (patch) | |
tree | 854e0fc1370df833186f99b8ab914e0457d5e7b2 | |
parent | Merge pull request #132 from fiber/master (diff) | |
download | golite-07b39a049e5d1fbb445c163dc7d7955a203688e3.tar.gz golite-07b39a049e5d1fbb445c163dc7d7955a203688e3.tar.xz |
Add TestStress
-rw-r--r-- | sqlite3_test.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/sqlite3_test.go b/sqlite3_test.go index fe8626f..4f20026 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -700,3 +700,40 @@ func TestQueryer(t *testing.T) { } } } + +func TestStress(t *testing.T) { + tempFilename := TempFilename() + db, err := sql.Open("sqlite3", tempFilename) + if err != nil { + t.Fatal("Failed to open database:", err) + } + db.Exec("CREATE TABLE foo (id int);") + db.Exec("INSERT INTO foo VALUES(1);") + db.Exec("INSERT INTO foo VALUES(2);") + db.Close() + + for i := 0; i < 10000; i++ { + db, err := sql.Open("sqlite3", tempFilename) + if err != nil { + t.Fatal("Failed to open database:", err) + } + + for j := 0; j < 3; j++ { + rows, err := db.Query("select * from foo where id=1;") + if err != nil { + t.Error("Failed to call db.Query:", err) + } + for rows.Next() { + var i int + if err := rows.Scan(&i); err != nil { + t.Errorf("Scan failed: %v\n", err) + } + } + if err := rows.Err(); err != nil { + t.Errorf("Post-scan failed: %v\n", err) + } + rows.Close() + } + db.Close() + } +} |