aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/database/sql/sql_test.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2013-08-13 14:56:40 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2013-08-13 14:56:40 -0700
commitca3ed9f3520de7998dcc009eca8d35eefec55412 (patch)
tree23309e7cfddb8e549e099c71461c933907b9345e /src/pkg/database/sql/sql_test.go
parentc7d352c9412de57ac5c9f5d7895540336ebaab5c (diff)
downloadgo-ca3ed9f3520de7998dcc009eca8d35eefec55412.tar.xz
database/sql: add a disabled broken test
Update #6081 R=golang-dev, gri CC=golang-dev https://golang.org/cl/12810043
Diffstat (limited to 'src/pkg/database/sql/sql_test.go')
-rw-r--r--src/pkg/database/sql/sql_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/pkg/database/sql/sql_test.go b/src/pkg/database/sql/sql_test.go
index fc620bd6dc..2b9347aeda 100644
--- a/src/pkg/database/sql/sql_test.go
+++ b/src/pkg/database/sql/sql_test.go
@@ -5,6 +5,7 @@
package sql
import (
+ "database/sql/driver"
"fmt"
"reflect"
"runtime"
@@ -1110,6 +1111,52 @@ func manyConcurrentQueries(t testOrBench) {
wg.Wait()
}
+func TestIssue6081(t *testing.T) {
+ t.Skip("known broken test")
+ db := newTestDB(t, "people")
+ defer closeDB(t, db)
+
+ drv := db.driver.(*fakeDriver)
+ drv.mu.Lock()
+ opens0 := drv.openCount
+ closes0 := drv.closeCount
+ drv.mu.Unlock()
+
+ stmt, err := db.Prepare("SELECT|people|name|")
+ if err != nil {
+ t.Fatal(err)
+ }
+ rowsCloseHook = func(rows *Rows, err *error) {
+ *err = driver.ErrBadConn
+ }
+ defer func() { rowsCloseHook = nil }()
+ for i := 0; i < 10; i++ {
+ rows, err := stmt.Query()
+ if err != nil {
+ t.Fatal(err)
+ }
+ rows.Close()
+ }
+ if n := len(stmt.css); n > 1 {
+ t.Errorf("len(css slice) = %d; want <= 1", n)
+ }
+ stmt.Close()
+ if n := len(stmt.css); n != 0 {
+ t.Errorf("len(css slice) after Close = %d; want 0", n)
+ }
+
+ drv.mu.Lock()
+ opens := drv.openCount - opens0
+ closes := drv.closeCount - closes0
+ drv.mu.Unlock()
+ if opens < 9 {
+ t.Errorf("opens = %d; want >= 9", opens)
+ }
+ if closes < 9 {
+ t.Errorf("closes = %d; want >= 9", closes)
+ }
+}
+
func TestConcurrency(t *testing.T) {
manyConcurrentQueries(t)
}