1
0
mirror of https://github.com/golang/go synced 2024-11-18 09:04:49 -07:00

net/http: add a known goroutine, don't check goroutine leaks in benchmark mode

Change-Id: I8aa070f8093e80ba19f0546d7447caf847a2b388
Reviewed-on: https://go-review.googlesource.com/45912
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Brad Fitzpatrick 2017-06-15 19:32:36 +00:00
parent 8d2b3bb7b1
commit a9fc249f5f

View File

@ -37,6 +37,7 @@ func interestingGoroutines() (gs []string) {
} }
stack := strings.TrimSpace(sl[1]) stack := strings.TrimSpace(sl[1])
if stack == "" || if stack == "" ||
strings.Contains(stack, "os/signal.signal_recv") ||
strings.Contains(stack, "created by net.startServer") || strings.Contains(stack, "created by net.startServer") ||
strings.Contains(stack, "created by testing.RunTests") || strings.Contains(stack, "created by testing.RunTests") ||
strings.Contains(stack, "closeWriteAndWait") || strings.Contains(stack, "closeWriteAndWait") ||
@ -56,8 +57,9 @@ func interestingGoroutines() (gs []string) {
// Verify the other tests didn't leave any goroutines running. // Verify the other tests didn't leave any goroutines running.
func goroutineLeaked() bool { func goroutineLeaked() bool {
if testing.Short() { if testing.Short() || runningBenchmarks() {
// not counting goroutines for leakage in -short mode // Don't worry about goroutine leaks in -short mode or in
// benchmark mode. Too distracting when there are false positives.
return false return false
} }
@ -92,6 +94,18 @@ func setParallel(t *testing.T) {
} }
} }
func runningBenchmarks() bool {
for i, arg := range os.Args {
if strings.HasPrefix(arg, "-test.bench=") && !strings.HasSuffix(arg, "=") {
return true
}
if arg == "-test.bench" && i < len(os.Args)-1 && os.Args[i+1] != "" {
return true
}
}
return false
}
func afterTest(t testing.TB) { func afterTest(t testing.TB) {
http.DefaultTransport.(*http.Transport).CloseIdleConnections() http.DefaultTransport.(*http.Transport).CloseIdleConnections()
if testing.Short() { if testing.Short() {