From: Jonathan Amsterdam Date: Fri, 17 Dec 2021 15:30:51 +0000 (-0500) Subject: go/doc: use subtests X-Git-Tag: go1.18beta2~174 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a893d0f464e15f72d5f01937bed5011098adbb7b;p=gostls13.git 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 Run-TryBot: Jonathan Amsterdam TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- diff --git a/src/go/doc/doc_test.go b/src/go/doc/doc_test.go index 3d17036f01..c8cdf9eb37 100644 --- a/src/go/doc/doc_test.go +++ b/src/go/doc/doc_test.go @@ -100,58 +100,56 @@ func test(t *testing.T, mode Mode) { // test packages for _, pkg := range pkgs { - importPath := dataDir + "/" + pkg.Name - var files []*ast.File - for _, f := range pkg.Files { - files = append(files, f) - } - doc, err := NewFromFiles(fset, files, importPath, mode) - if err != nil { - t.Error(err) - continue - } + t.Run(pkg.Name, func(t *testing.T) { + importPath := dataDir + "/" + pkg.Name + var files []*ast.File + for _, f := range pkg.Files { + files = append(files, f) + } + doc, err := NewFromFiles(fset, files, importPath, mode) + if err != nil { + t.Fatal(err) + } - // golden files always use / in filenames - canonicalize them - for i, filename := range doc.Filenames { - doc.Filenames[i] = filepath.ToSlash(filename) - } + // golden files always use / in filenames - canonicalize them + for i, filename := range doc.Filenames { + doc.Filenames[i] = filepath.ToSlash(filename) + } - // print documentation - var buf bytes.Buffer - if err := templateTxt.Execute(&buf, bundle{doc, fset}); err != nil { - t.Error(err) - continue - } - got := buf.Bytes() + // print documentation + var buf bytes.Buffer + if err := templateTxt.Execute(&buf, bundle{doc, fset}); err != nil { + t.Fatal(err) + } + got := buf.Bytes() + + // update golden file if necessary + golden := filepath.Join(dataDir, fmt.Sprintf("%s.%d.golden", pkg.Name, mode)) + if *update { + err := os.WriteFile(golden, got, 0644) + if err != nil { + t.Fatal(err) + } + } - // update golden file if necessary - golden := filepath.Join(dataDir, fmt.Sprintf("%s.%d.golden", pkg.Name, mode)) - if *update { - err := os.WriteFile(golden, got, 0644) + // get golden file + want, err := os.ReadFile(golden) if err != nil { - t.Error(err) + t.Fatal(err) } - continue - } - - // get golden file - want, err := os.ReadFile(golden) - if err != nil { - t.Error(err) - continue - } - // compare - if !bytes.Equal(got, want) { - t.Errorf("package %s\n\tgot:\n%s\n\twant:\n%s", pkg.Name, got, want) - } + // compare + if !bytes.Equal(got, want) { + t.Errorf("package %s\n\tgot:\n%s\n\twant:\n%s", pkg.Name, got, want) + } + }) } } func Test(t *testing.T) { - test(t, 0) - test(t, AllDecls) - test(t, AllMethods) + t.Run("default", func(t *testing.T) { test(t, 0) }) + t.Run("AllDecls", func(t *testing.T) { test(t, AllDecls) }) + t.Run("AllMethods", func(t *testing.T) { test(t, AllMethods) }) } func TestAnchorID(t *testing.T) {