...
1# Tests that the generated test main file has a generated code comment.
2# This is needed by analyzers that access source files through 'go list'.
3# Verifies golang.org/issue/31971.
4# TODO(jayconrod): This test is brittle. We should write _testmain.go as
5# a build action instead of with an ad-hoc WriteFile call
6# in internal/test/test.go. Then we could just grep 'go get -n'.
7go test x_test.go
8
9-- x_test.go --
10package x
11
12import (
13 "os"
14 "path/filepath"
15 "regexp"
16 "testing"
17)
18
19func Test(t *testing.T) {
20 exePath, err := os.Executable()
21 if err != nil {
22 t.Fatal(err)
23 }
24 testmainPath := filepath.Join(filepath.Dir(exePath), "_testmain.go")
25 source, err := os.ReadFile(testmainPath)
26 if err != nil {
27 t.Fatal(err)
28 }
29 if matched, err := regexp.Match(`(?m)^// Code generated .* DO NOT EDIT\.$`, source); err != nil {
30 t.Fatal(err)
31 } else if !matched {
32 t.Error("_testmain.go does not have generated code comment")
33 }
34}
View as plain text