aboutsummaryrefslogtreecommitdiff
path: root/sqlite3_test.go
diff options
context:
space:
mode:
authorGert-Jan Timmer <gjr.timmer@gmail.com>2018-06-12 11:06:00 +0200
committerGert-Jan Timmer <gjr.timmer@gmail.com>2018-06-12 11:06:00 +0200
commit62b7bd5f549873e6cbb1ee7bd653821136716d49 (patch)
treedd10bbbd0b60ff5a008327ebe30f614c1bf31f64 /sqlite3_test.go
parentAdds GetFilename (sqlite3_db_filename) to SqliteConn (diff)
downloadgolite-62b7bd5f549873e6cbb1ee7bd653821136716d49.tar.gz
golite-62b7bd5f549873e6cbb1ee7bd653821136716d49.tar.xz
fix/118
* Added TestMultiBlobs * Removed dead code Fixes #118
Diffstat (limited to 'sqlite3_test.go')
-rw-r--r--sqlite3_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/sqlite3_test.go b/sqlite3_test.go
index eadcf4a..186a2dd 100644
--- a/sqlite3_test.go
+++ b/sqlite3_test.go
@@ -1679,6 +1679,7 @@ var testTables = []string{"foo", "bar", "t", "bench"}
var tests = []testing.InternalTest{
{Name: "TestResult", F: testResult},
{Name: "TestBlobs", F: testBlobs},
+ {Name: "TestMultiBlobs", F: testMultiBlobs},
{Name: "TestManyQueryRow", F: testManyQueryRow},
{Name: "TestTxQuery", F: testTxQuery},
{Name: "TestPreparedStmt", F: testPreparedStmt},
@@ -1834,6 +1835,56 @@ func testBlobs(t *testing.T) {
}
}
+func testMultiBlobs(t *testing.T) {
+ db.tearDown()
+ db.mustExec("create table foo (id integer primary key, bar " + db.blobType(16) + ")")
+ var blob0 = []byte{0, 1, 2, 3, 4, 5, 6, 7}
+ db.mustExec(db.q("insert into foo (id, bar) values(?,?)"), 0, blob0)
+ var blob1 = []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+ db.mustExec(db.q("insert into foo (id, bar) values(?,?)"), 1, blob1)
+
+ r, err := db.Query(db.q("select bar from foo order by id"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer r.Close()
+ if !r.Next() {
+ if r.Err() != nil {
+ t.Fatal(err)
+ }
+ t.Fatal("expected one rows")
+ }
+
+ want0 := fmt.Sprintf("%x", blob0)
+ b0 := make([]byte, 8)
+ err = r.Scan(&b0)
+ if err != nil {
+ t.Fatal(err)
+ }
+ got0 := fmt.Sprintf("%x", b0)
+
+ if !r.Next() {
+ if r.Err() != nil {
+ t.Fatal(err)
+ }
+ t.Fatal("expected one rows")
+ }
+
+ want1 := fmt.Sprintf("%x", blob1)
+ b1 := make([]byte, 16)
+ err = r.Scan(&b1)
+ if err != nil {
+ t.Fatal(err)
+ }
+ got1 := fmt.Sprintf("%x", b1)
+ if got0 != want0 {
+ t.Errorf("for []byte, got %q; want %q", got0, want0)
+ }
+ if got1 != want1 {
+ t.Errorf("for []byte, got %q; want %q", got1, want1)
+ }
+}
+
// testManyQueryRow is test for many query row
func testManyQueryRow(t *testing.T) {
if testing.Short() {