From c7a107bfbf668d472b5054eaa52a01c6b915524c Mon Sep 17 00:00:00 2001 From: Michael Pratt Date: Mon, 18 May 2026 15:14:12 -0400 Subject: [PATCH] encoding/json/internal/jsontest: rename testdata to _embed Various tools assume that testdata directories are unnecessary if you don't need to run tests. This includes cmd/internal/bootstrap_test, which runs go install std on a GOROOT excluding testdata directories. Since this is an importable package rather than a test, to avoid breaking that case we must not actually name the directory testdata. We may want to reevaluate whether we want a dedicated package with embedded testdata at all, but for now the simple fix for the currently broken longtest builders is to simply rename the directory. For #71497. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Change-Id: Ic14ce7b06dca36cc758f99374da378c46a6a6964 Reviewed-on: https://go-review.googlesource.com/c/go/+/779302 Auto-Submit: Michael Pratt Reviewed-by: Cherry Mui SLSA-Policy-Verified: SLSA Policy Verification Service TryBot-Bypass: Michael Pratt --- .../{testdata => _embed}/canada_geometry.json.zst | Bin .../{testdata => _embed}/citm_catalog.json.zst | Bin .../{testdata => _embed}/golang_source.json.zst | Bin .../{testdata => _embed}/string_escaped.json.zst | Bin .../{testdata => _embed}/string_unicode.json.zst | Bin .../{testdata => _embed}/synthea_fhir.json.zst | Bin .../{testdata => _embed}/twitter_status.json.zst | Bin src/encoding/json/internal/jsontest/testdata.go | 12 +++++++++--- 8 files changed, 9 insertions(+), 3 deletions(-) rename src/encoding/json/internal/jsontest/{testdata => _embed}/canada_geometry.json.zst (100%) rename src/encoding/json/internal/jsontest/{testdata => _embed}/citm_catalog.json.zst (100%) rename src/encoding/json/internal/jsontest/{testdata => _embed}/golang_source.json.zst (100%) rename src/encoding/json/internal/jsontest/{testdata => _embed}/string_escaped.json.zst (100%) rename src/encoding/json/internal/jsontest/{testdata => _embed}/string_unicode.json.zst (100%) rename src/encoding/json/internal/jsontest/{testdata => _embed}/synthea_fhir.json.zst (100%) rename src/encoding/json/internal/jsontest/{testdata => _embed}/twitter_status.json.zst (100%) diff --git a/src/encoding/json/internal/jsontest/testdata/canada_geometry.json.zst b/src/encoding/json/internal/jsontest/_embed/canada_geometry.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/canada_geometry.json.zst rename to src/encoding/json/internal/jsontest/_embed/canada_geometry.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata/citm_catalog.json.zst b/src/encoding/json/internal/jsontest/_embed/citm_catalog.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/citm_catalog.json.zst rename to src/encoding/json/internal/jsontest/_embed/citm_catalog.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata/golang_source.json.zst b/src/encoding/json/internal/jsontest/_embed/golang_source.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/golang_source.json.zst rename to src/encoding/json/internal/jsontest/_embed/golang_source.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata/string_escaped.json.zst b/src/encoding/json/internal/jsontest/_embed/string_escaped.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/string_escaped.json.zst rename to src/encoding/json/internal/jsontest/_embed/string_escaped.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata/string_unicode.json.zst b/src/encoding/json/internal/jsontest/_embed/string_unicode.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/string_unicode.json.zst rename to src/encoding/json/internal/jsontest/_embed/string_unicode.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata/synthea_fhir.json.zst b/src/encoding/json/internal/jsontest/_embed/synthea_fhir.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/synthea_fhir.json.zst rename to src/encoding/json/internal/jsontest/_embed/synthea_fhir.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata/twitter_status.json.zst b/src/encoding/json/internal/jsontest/_embed/twitter_status.json.zst similarity index 100% rename from src/encoding/json/internal/jsontest/testdata/twitter_status.json.zst rename to src/encoding/json/internal/jsontest/_embed/twitter_status.json.zst diff --git a/src/encoding/json/internal/jsontest/testdata.go b/src/encoding/json/internal/jsontest/testdata.go index 74de366136..39638905f2 100644 --- a/src/encoding/json/internal/jsontest/testdata.go +++ b/src/encoding/json/internal/jsontest/testdata.go @@ -25,7 +25,13 @@ import ( // by other packages such that the location of testdata may change relative // to the working directory of the test itself. // -//go:embed testdata/*.json.zst +// Various tools assume that testdata directories are unnecessary if you don't +// need to run tests. This includes cmd/internal/bootstrap_test, which runs go +// install std on a GOROOT excluding testdata directories. Since this is an +// importable package rather than a test, to avoid breaking that case we must +// not actually name the directory testdata. +// +//go:embed _embed/*.json.zst var testdataFS embed.FS type Entry struct { @@ -43,7 +49,7 @@ func mustGet[T any](v T, err error) T { // Data is a list of JSON testdata. var Data = func() (entries []Entry) { - fis := mustGet(fs.ReadDir(testdataFS, "testdata")) + fis := mustGet(fs.ReadDir(testdataFS, "_embed")) slices.SortFunc(fis, func(x, y fs.DirEntry) int { return strings.Compare(x.Name(), y.Name()) }) for _, fi := range fis { var entry Entry @@ -57,7 +63,7 @@ var Data = func() (entries []Entry) { // Lazily read and decompress the test data. entry.Data = sync.OnceValue(func() []byte { - filePath := path.Join("testdata", fi.Name()) + filePath := path.Join("_embed", fi.Name()) b := mustGet(fs.ReadFile(testdataFS, filePath)) zr := zstd.NewReader(bytes.NewReader(b)) return mustGet(io.ReadAll(zr))