]> Cypherpunks repositories - gostls13.git/commitdiff
testing: enforce -skip in example tests
authorMauri de Souza Meneguzzo <mauri870@gmail.com>
Fri, 21 Jul 2023 18:49:09 +0000 (18:49 +0000)
committerGopher Robot <gobot@golang.org>
Fri, 21 Jul 2023 21:37:46 +0000 (21:37 +0000)
The go test flag -skip had no effect in example tests.

Fixes #61482

Change-Id: I28dfddb88fef3fead2a3c74f9cb63a674a768231
GitHub-Last-Rev: e8c3c3460af906f4c7be7f7a8b4a4c60b71fcec1
GitHub-Pull-Request: golang/go#61491
Reviewed-on: https://go-review.googlesource.com/c/go/+/511837
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>

src/cmd/go/testdata/script/test_skip.txt
src/testing/example.go

index 94d20b96449086181f059e10de616bfc1b943993..73e4195f78e81a5937f4886c5788c1c7c8a9f48c 100644 (file)
@@ -13,13 +13,19 @@ stdout RUN.*Test2/3
 go test -v -skip 2/3 skip_test.go
 stdout RUN.*Test1
 stdout RUN.*Test2
+stdout RUN.*ExampleTest1
 ! stdout Test2/3
 
 go test -v -skip 2/4 skip_test.go
 stdout RUN.*Test1
 stdout RUN.*Test2
 stdout RUN.*Test2/3
+stdout RUN.*ExampleTest1
 
+go test -v -skip Example skip_test.go
+stdout RUN.*Test1
+stdout RUN.*Test2
+stdout RUN.*Test2/3
 
 -- skip_test.go --
 package skip_test
@@ -32,3 +38,7 @@ func Test1(t *testing.T) {
 func Test2(t *testing.T) {
        t.Run("3", func(t *testing.T) {})
 }
+
+func ExampleTest1() {
+       // Output:
+}
index 42ee555cb28f7d9a89a13ffb0396abd079baec84..07aa5cb66c192f1fe41f3d286f45a3a15c4674f9 100644 (file)
@@ -6,7 +6,6 @@ package testing
 
 import (
        "fmt"
-       "os"
        "sort"
        "strings"
        "time"
@@ -29,14 +28,11 @@ func RunExamples(matchString func(pat, str string) (bool, error), examples []Int
 func runExamples(matchString func(pat, str string) (bool, error), examples []InternalExample) (ran, ok bool) {
        ok = true
 
-       var eg InternalExample
+       m := newMatcher(matchString, *match, "-test.run", *skip)
 
+       var eg InternalExample
        for _, eg = range examples {
-               matched, err := matchString(*match, eg.Name)
-               if err != nil {
-                       fmt.Fprintf(os.Stderr, "testing: invalid regexp for -test.run: %s\n", err)
-                       os.Exit(1)
-               }
+               _, matched, _ := m.fullName(nil, eg.Name)
                if !matched {
                        continue
                }