]> Cypherpunks repositories - gostls13.git/commitdiff
regexp: don't run slow benchmarks on race builders
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 14 Sep 2016 17:48:33 +0000 (17:48 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 14 Sep 2016 18:17:06 +0000 (18:17 +0000)
Shave 6.5 minutes off the *-race build time.

The *-race builders run:

    go test -short -race -run=^$ -benchtime=.1s -cpu=4 $PKG

... for each package with benchmarks.

The point isn't to measure the speed of the packages, but rather to
see if there are any races. (which is why a benchtime of 0.1 seconds
is used)

But running in race mode makes things slower and our benchmarks aren't
all very fast to begin with.

The regexp benchmarks in race were taking over 6.5 minutes. With this
CL, it's now 8 seconds.

Updates #17104

Change-Id: I054528d09b1568d37aac9f9b515d6ed90a5cf5b0
Reviewed-on: https://go-review.googlesource.com/29156
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/regexp/exec_test.go

index 69f187e38a8e099fff66ff8a2d675454d03ecebc..766394de6ee70d3677c2b4fc01a0174ce767a343 100644 (file)
@@ -8,6 +8,7 @@ import (
        "bufio"
        "compress/bzip2"
        "fmt"
+       "internal/testenv"
        "io"
        "os"
        "path/filepath"
@@ -659,9 +660,14 @@ func makeText(n int) []byte {
 }
 
 func BenchmarkMatch(b *testing.B) {
+       isRaceBuilder := strings.HasSuffix(testenv.Builder(), "-race")
+
        for _, data := range benchData {
                r := MustCompile(data.re)
                for _, size := range benchSizes {
+                       if isRaceBuilder && size.n > 1<<10 {
+                               continue
+                       }
                        t := makeText(size.n)
                        b.Run(data.name+"/"+size.name, func(b *testing.B) {
                                b.SetBytes(int64(size.n))