diff options
Diffstat (limited to 'libgo/go/regexp/onepass_test.go')
-rw-r--r-- | libgo/go/regexp/onepass_test.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libgo/go/regexp/onepass_test.go b/libgo/go/regexp/onepass_test.go index f4e336c43ba..b1caa445150 100644 --- a/libgo/go/regexp/onepass_test.go +++ b/libgo/go/regexp/onepass_test.go @@ -7,6 +7,7 @@ package regexp import ( "reflect" "regexp/syntax" + "strings" "testing" ) @@ -173,6 +174,7 @@ var onePassTests = []struct { {`^.bc(d|e)*$`, onePass}, {`^(?:(?:aa)|.)$`, notOnePass}, {`^(?:(?:a{1,2}){1,2})$`, notOnePass}, + {`^l` + strings.Repeat("o", 2<<8) + `ng$`, onePass}, } func TestCompileOnePass(t *testing.T) { @@ -223,3 +225,23 @@ func TestRunOnePass(t *testing.T) { } } } + +func BenchmarkCompileOnepass(b *testing.B) { + for _, test := range onePassTests { + if test.onePass == notOnePass { + continue + } + name := test.re + if len(name) > 20 { + name = name[:20] + "..." + } + b.Run(name, func(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N; i++ { + if _, err := Compile(test.re); err != nil { + b.Fatal(err) + } + } + }) + } +} |