database/sql: make TestDrivers not crash on second run
Using -test.cpu=1,1 made it crash before.
Fixes #9024
LGTM=iant
R=adg, iant
CC=golang-codereviews
https://golang.org/cl/169860043
diff --git a/src/database/sql/fakedb_test.go b/src/database/sql/fakedb_test.go
index 171c322..a993fd4 100644
--- a/src/database/sql/fakedb_test.go
+++ b/src/database/sql/fakedb_test.go
@@ -141,6 +141,8 @@
}
func TestDrivers(t *testing.T) {
+ unregisterAllDrivers()
+ Register("test", fdriver)
Register("invalid", Dummy{})
all := Drivers()
if len(all) < 2 || !sort.StringsAreSorted(all) || !contains(all, "test") || !contains(all, "invalid") {
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index ad9179c..6e6f246 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -37,6 +37,11 @@
drivers[name] = driver
}
+func unregisterAllDrivers() {
+ // For tests.
+ drivers = make(map[string]driver.Driver)
+}
+
// Drivers returns a sorted list of the names of the registered drivers.
func Drivers() []string {
var list []string