From 64371adcf4f431adc1f6afab4d7e61bb9b5eff72 Mon Sep 17 00:00:00 2001 From: Damien Neil Date: Tue, 15 Apr 2025 11:17:03 -0700 Subject: [PATCH] cmd/go/internal/imports: remove test dependency on json internals TestScan loads encoding/json and verifies that various imports match expectations. The new v2 encoding/json violates these expectations. Since this test is testing the ScanDir function, not encoding/json, change it to use a test package with defined imports instead. Change-Id: I68a0813ccf37daadbd6ea52872a8ac132141e82a Reviewed-on: https://go-review.googlesource.com/c/go/+/665795 Reviewed-by: Alan Donovan TryBot-Bypass: Damien Neil Auto-Submit: Damien Neil --- src/cmd/go/internal/imports/scan_test.go | 22 +++++++++---------- .../imports/testdata/test/child/child.go | 5 +++++ .../internal/imports/testdata/test/tags.txt | 0 .../go/internal/imports/testdata/test/test.go | 10 +++++++++ .../imports/testdata/test/test_test.go | 9 ++++++++ .../internal/imports/testdata/test/want.txt | 2 ++ 6 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 src/cmd/go/internal/imports/testdata/test/child/child.go create mode 100644 src/cmd/go/internal/imports/testdata/test/tags.txt create mode 100644 src/cmd/go/internal/imports/testdata/test/test.go create mode 100644 src/cmd/go/internal/imports/testdata/test/test_test.go create mode 100644 src/cmd/go/internal/imports/testdata/test/want.txt diff --git a/src/cmd/go/internal/imports/scan_test.go b/src/cmd/go/internal/imports/scan_test.go index 56efa9023f..6284da2337 100644 --- a/src/cmd/go/internal/imports/scan_test.go +++ b/src/cmd/go/internal/imports/scan_test.go @@ -17,26 +17,26 @@ import ( func TestScan(t *testing.T) { testenv.MustHaveGoBuild(t) - imports, testImports, err := ScanDir(filepath.Join(testenv.GOROOT(t), "src/encoding/json"), Tags()) + imports, testImports, err := ScanDir(filepath.Join(testenv.GOROOT(t), "src/cmd/go/internal/imports/testdata/test"), Tags()) if err != nil { t.Fatal(err) } - foundBase64 := false + foundFmt := false for _, p := range imports { - if p == "encoding/base64" { - foundBase64 = true + if p == "fmt" { + foundFmt = true // test package imports fmt directly } if p == "encoding/binary" { // A dependency but not an import - t.Errorf("json reported as importing encoding/binary but does not") + t.Errorf("testdata/test reported as importing encoding/binary but does not") } if p == "net/http" { // A test import but not an import - t.Errorf("json reported as importing net/http but does not") + t.Errorf("testdata/test reported as importing net/http but does not") } } - if !foundBase64 { - t.Errorf("json missing import encoding/base64 (%q)", imports) + if !foundFmt { + t.Errorf("testdata/test missing import fmt (%q)", imports) } foundHTTP := false @@ -44,13 +44,13 @@ func TestScan(t *testing.T) { if p == "net/http" { foundHTTP = true } - if p == "unicode/utf16" { + if p == "fmt" { // A package import but not a test import - t.Errorf("json reported as test-importing unicode/utf16 but does not") + t.Errorf("testdata/test reported as test-importing fmt but does not") } } if !foundHTTP { - t.Errorf("json missing test import net/http (%q)", testImports) + t.Errorf("testdata/test missing test import net/http (%q)", testImports) } } func TestScanDir(t *testing.T) { diff --git a/src/cmd/go/internal/imports/testdata/test/child/child.go b/src/cmd/go/internal/imports/testdata/test/child/child.go new file mode 100644 index 0000000000..44919db3d6 --- /dev/null +++ b/src/cmd/go/internal/imports/testdata/test/child/child.go @@ -0,0 +1,5 @@ +package child + +import "encoding/binary" + +var V = binary.MaxVarintLen16 diff --git a/src/cmd/go/internal/imports/testdata/test/tags.txt b/src/cmd/go/internal/imports/testdata/test/tags.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cmd/go/internal/imports/testdata/test/test.go b/src/cmd/go/internal/imports/testdata/test/test.go new file mode 100644 index 0000000000..74e76a0722 --- /dev/null +++ b/src/cmd/go/internal/imports/testdata/test/test.go @@ -0,0 +1,10 @@ +package test + +import ( + "cmd/go/internal/imports/testdata/test/child" + "fmt" +) + +func F() { + fmt.Println(child.V) +} diff --git a/src/cmd/go/internal/imports/testdata/test/test_test.go b/src/cmd/go/internal/imports/testdata/test/test_test.go new file mode 100644 index 0000000000..ca7c501cb2 --- /dev/null +++ b/src/cmd/go/internal/imports/testdata/test/test_test.go @@ -0,0 +1,9 @@ +package test_test + +import ( + _ "net/http" + "testing" +) + +func Test(t *testing.T) { +} diff --git a/src/cmd/go/internal/imports/testdata/test/want.txt b/src/cmd/go/internal/imports/testdata/test/want.txt new file mode 100644 index 0000000000..7c7c8c67ee --- /dev/null +++ b/src/cmd/go/internal/imports/testdata/test/want.txt @@ -0,0 +1,2 @@ +cmd/go/internal/imports/testdata/test/child +fmt -- 2.51.0