]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: run 'go help documentation' through gofmt in TestDocsUpToDate
authorRuss Cox <rsc@golang.org>
Fri, 4 Feb 2022 16:55:33 +0000 (11:55 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 18 Mar 2022 16:57:07 +0000 (16:57 +0000)
mkalldocs.sh runs gofmt on the output, but the test does not.
If go help documentation and gofmt disagree, the test will fail.
Fix that.

Change-Id: I837374a2d36cb5d71278ecefe2a7b6544622c576
Reviewed-on: https://go-review.googlesource.com/c/go/+/384256
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/cmd/go/help_test.go

index abfc3db9936bb909dc180026506a0090fdc58a16..3e1d817ca5b236bf4954c1c3f3fd1d6811ec92cd 100644 (file)
@@ -6,6 +6,8 @@ package main_test
 
 import (
        "bytes"
+       "go/format"
+       diffpkg "internal/diff"
        "os"
        "testing"
 
@@ -23,11 +25,17 @@ func TestDocsUpToDate(t *testing.T) {
        buf := new(bytes.Buffer)
        // Match the command in mkalldocs.sh that generates alldocs.go.
        help.Help(buf, []string{"documentation"})
-       data, err := os.ReadFile("alldocs.go")
+       internal := buf.Bytes()
+       internal, err := format.Source(internal)
+       if err != nil {
+               t.Fatalf("gofmt docs: %v", err)
+       }
+       alldocs, err := os.ReadFile("alldocs.go")
        if err != nil {
                t.Fatalf("error reading alldocs.go: %v", err)
        }
-       if !bytes.Equal(data, buf.Bytes()) {
-               t.Errorf("alldocs.go is not up to date; run mkalldocs.sh to regenerate it")
+       if !bytes.Equal(internal, alldocs) {
+               t.Errorf("alldocs.go is not up to date; run mkalldocs.sh to regenerate it\n%s",
+                       diffpkg.Diff("go help documentation | gofmt", internal, "alldocs.go", alldocs))
        }
 }