aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/database/sql/sql_test.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2012-02-09 15:01:29 +1100
committerBrad Fitzpatrick <bradfitz@golang.org>2012-02-09 15:01:29 +1100
commit29df93735c85a5eaf1388df7ffa7f8c410dfce0b (patch)
tree3388f83548a4c6edbf56963b1226c0c4fd9adbc0 /src/pkg/database/sql/sql_test.go
parent947ea6f750809302534bdb57afd2091767bd4038 (diff)
downloadgo-29df93735c85a5eaf1388df7ffa7f8c410dfce0b.tar.xz
database/sql: more tests
Higher level tests for the pointer parameters and scanning, complementing the existing ones included in the previous CL. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/5646050
Diffstat (limited to 'src/pkg/database/sql/sql_test.go')
-rw-r--r--src/pkg/database/sql/sql_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/pkg/database/sql/sql_test.go b/src/pkg/database/sql/sql_test.go
index c5cadad849..c985a10bee 100644
--- a/src/pkg/database/sql/sql_test.go
+++ b/src/pkg/database/sql/sql_test.go
@@ -386,6 +386,38 @@ func TestNullByteSlice(t *testing.T) {
}
}
+func TestPointerParamsAndScans(t *testing.T) {
+ db := newTestDB(t, "")
+ defer closeDB(t, db)
+ exec(t, db, "CREATE|t|id=int32,name=nullstring")
+
+ bob := "bob"
+ var name *string
+
+ name = &bob
+ exec(t, db, "INSERT|t|id=10,name=?", name)
+ name = nil
+ exec(t, db, "INSERT|t|id=20,name=?", name)
+
+ err := db.QueryRow("SELECT|t|name|id=?", 10).Scan(&name)
+ if err != nil {
+ t.Fatalf("querying id 10: %v", err)
+ }
+ if name == nil {
+ t.Errorf("id 10's name = nil; want bob")
+ } else if *name != "bob" {
+ t.Errorf("id 10's name = %q; want bob", *name)
+ }
+
+ err = db.QueryRow("SELECT|t|name|id=?", 20).Scan(&name)
+ if err != nil {
+ t.Fatalf("querying id 20: %v", err)
+ }
+ if name != nil {
+ t.Errorf("id 20 = %q; want nil", *name)
+ }
+}
+
func TestQueryRowClosingStmt(t *testing.T) {
db := newTestDB(t, "people")
defer closeDB(t, db)