From 29df93735c85a5eaf1388df7ffa7f8c410dfce0b Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Thu, 9 Feb 2012 15:01:29 +1100 Subject: [PATCH] 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 --- src/pkg/database/sql/sql_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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) -- 2.50.0