aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/relnote/relnote_test.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2023-11-15 09:50:01 -0500
committerJonathan Amsterdam <jba@google.com>2024-01-24 13:01:26 +0000
commit8b23b7b04234424791e26b8d2d26f61ef1311a9f (patch)
treed0cebc42f94025d062d5669bf27046d3025b67a6 /src/cmd/relnote/relnote_test.go
parentb4e7d630bc6fbf654a20a4bebda94a8150811bea (diff)
downloadgo-8b23b7b04234424791e26b8d2d26f61ef1311a9f.tar.xz
src/cmd/relnote, doc/next: add release note check
Add a test that every file in api/next has corresponding release note fragments. Vendor in golang.org/x/build/relnote, which brings along some other things. Modify dist/test.go to configure the test to run on some trybots. For #64169. Change-Id: If87d11350ea6b2605bc3ab31c491fa28f1d6ee7d Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/556995 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Diffstat (limited to 'src/cmd/relnote/relnote_test.go')
-rw-r--r--src/cmd/relnote/relnote_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/cmd/relnote/relnote_test.go b/src/cmd/relnote/relnote_test.go
new file mode 100644
index 0000000000..ba3a059704
--- /dev/null
+++ b/src/cmd/relnote/relnote_test.go
@@ -0,0 +1,39 @@
+// Copyright 2023 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
+
+import (
+ "flag"
+ "internal/testenv"
+ "io/fs"
+ "os"
+ "path/filepath"
+ "testing"
+
+ "golang.org/x/build/relnote"
+)
+
+var flagCheck = flag.Bool("check", false, "run API release note checks")
+
+// Check that each file in api/next has corresponding release note files in doc/next.
+func TestCheckAPIFragments(t *testing.T) {
+ if !*flagCheck {
+ t.Skip("-check not specified")
+ }
+ root := testenv.GOROOT(t)
+ rootFS := os.DirFS(root)
+ files, err := fs.Glob(rootFS, "api/next/*.txt")
+ if err != nil {
+ t.Fatal(err)
+ }
+ t.Logf("checking release notes for %d files in api/next", len(files))
+ docFS := os.DirFS(filepath.Join(root, "doc", "next"))
+ // Check that each api/next file has a corresponding release note fragment.
+ for _, apiFile := range files {
+ if err := relnote.CheckAPIFile(rootFS, apiFile, docFS); err != nil {
+ t.Errorf("%s: %v", apiFile, err)
+ }
+ }
+}