diff options
Diffstat (limited to 'src/cmd/go/help_test.go')
-rw-r--r-- | src/cmd/go/help_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/cmd/go/help_test.go b/src/cmd/go/help_test.go new file mode 100644 index 0000000..3e1d817 --- /dev/null +++ b/src/cmd/go/help_test.go @@ -0,0 +1,41 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main_test + +import ( + "bytes" + "go/format" + diffpkg "internal/diff" + "os" + "testing" + + "cmd/go/internal/help" + "cmd/go/internal/modload" +) + +func TestDocsUpToDate(t *testing.T) { + t.Parallel() + + if !modload.Enabled() { + t.Skipf("help.Help in GOPATH mode is configured by main.main") + } + + buf := new(bytes.Buffer) + // Match the command in mkalldocs.sh that generates alldocs.go. + help.Help(buf, []string{"documentation"}) + 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(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)) + } +} |