Skip to content

Commit a893d0f

Browse files
committed
go/doc: use subtests
Change the Test function to use sub-tests for each doc mode and package. This will allow more fine-grained test execution. Change-Id: Ie3dda5791bda2781a60776886dd39fd18e670e24 Reviewed-on: https://go-review.googlesource.com/c/go/+/375094 Trust: Jonathan Amsterdam <[email protected]> Run-TryBot: Jonathan Amsterdam <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
1 parent c886143 commit a893d0f

File tree

1 file changed

+40
-42
lines changed

1 file changed

+40
-42
lines changed

src/go/doc/doc_test.go

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -100,58 +100,56 @@ func test(t *testing.T, mode Mode) {
100100

101101
// test packages
102102
for _, pkg := range pkgs {
103-
importPath := dataDir + "/" + pkg.Name
104-
var files []*ast.File
105-
for _, f := range pkg.Files {
106-
files = append(files, f)
107-
}
108-
doc, err := NewFromFiles(fset, files, importPath, mode)
109-
if err != nil {
110-
t.Error(err)
111-
continue
112-
}
103+
t.Run(pkg.Name, func(t *testing.T) {
104+
importPath := dataDir + "/" + pkg.Name
105+
var files []*ast.File
106+
for _, f := range pkg.Files {
107+
files = append(files, f)
108+
}
109+
doc, err := NewFromFiles(fset, files, importPath, mode)
110+
if err != nil {
111+
t.Fatal(err)
112+
}
113113

114-
// golden files always use / in filenames - canonicalize them
115-
for i, filename := range doc.Filenames {
116-
doc.Filenames[i] = filepath.ToSlash(filename)
117-
}
114+
// golden files always use / in filenames - canonicalize them
115+
for i, filename := range doc.Filenames {
116+
doc.Filenames[i] = filepath.ToSlash(filename)
117+
}
118118

119-
// print documentation
120-
var buf bytes.Buffer
121-
if err := templateTxt.Execute(&buf, bundle{doc, fset}); err != nil {
122-
t.Error(err)
123-
continue
124-
}
125-
got := buf.Bytes()
119+
// print documentation
120+
var buf bytes.Buffer
121+
if err := templateTxt.Execute(&buf, bundle{doc, fset}); err != nil {
122+
t.Fatal(err)
123+
}
124+
got := buf.Bytes()
125+
126+
// update golden file if necessary
127+
golden := filepath.Join(dataDir, fmt.Sprintf("%s.%d.golden", pkg.Name, mode))
128+
if *update {
129+
err := os.WriteFile(golden, got, 0644)
130+
if err != nil {
131+
t.Fatal(err)
132+
}
133+
}
126134

127-
// update golden file if necessary
128-
golden := filepath.Join(dataDir, fmt.Sprintf("%s.%d.golden", pkg.Name, mode))
129-
if *update {
130-
err := os.WriteFile(golden, got, 0644)
135+
// get golden file
136+
want, err := os.ReadFile(golden)
131137
if err != nil {
132-
t.Error(err)
138+
t.Fatal(err)
133139
}
134-
continue
135-
}
136-
137-
// get golden file
138-
want, err := os.ReadFile(golden)
139-
if err != nil {
140-
t.Error(err)
141-
continue
142-
}
143140

144-
// compare
145-
if !bytes.Equal(got, want) {
146-
t.Errorf("package %s\n\tgot:\n%s\n\twant:\n%s", pkg.Name, got, want)
147-
}
141+
// compare
142+
if !bytes.Equal(got, want) {
143+
t.Errorf("package %s\n\tgot:\n%s\n\twant:\n%s", pkg.Name, got, want)
144+
}
145+
})
148146
}
149147
}
150148

151149
func Test(t *testing.T) {
152-
test(t, 0)
153-
test(t, AllDecls)
154-
test(t, AllMethods)
150+
t.Run("default", func(t *testing.T) { test(t, 0) })
151+
t.Run("AllDecls", func(t *testing.T) { test(t, AllDecls) })
152+
t.Run("AllMethods", func(t *testing.T) { test(t, AllMethods) })
155153
}
156154

157155
func TestAnchorID(t *testing.T) {

0 commit comments

Comments
 (0)