]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go/internal/imports: remove test dependency on json internals
authorDamien Neil <dneil@google.com>
Tue, 15 Apr 2025 18:17:03 +0000 (11:17 -0700)
committerGopher Robot <gobot@golang.org>
Tue, 15 Apr 2025 22:43:46 +0000 (15:43 -0700)
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 <adonovan@google.com>
TryBot-Bypass: Damien Neil <dneil@google.com>
Auto-Submit: Damien Neil <dneil@google.com>

src/cmd/go/internal/imports/scan_test.go
src/cmd/go/internal/imports/testdata/test/child/child.go [new file with mode: 0644]
src/cmd/go/internal/imports/testdata/test/tags.txt [new file with mode: 0644]
src/cmd/go/internal/imports/testdata/test/test.go [new file with mode: 0644]
src/cmd/go/internal/imports/testdata/test/test_test.go [new file with mode: 0644]
src/cmd/go/internal/imports/testdata/test/want.txt [new file with mode: 0644]

index 56efa9023f19906154ec87178a0b04f30ce7b3ca..6284da2337781cdfaafe17ffc75a9f6d337d3a2e 100644 (file)
@@ -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 (file)
index 0000000..44919db
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
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 (file)
index 0000000..74e76a0
--- /dev/null
@@ -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 (file)
index 0000000..ca7c501
--- /dev/null
@@ -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 (file)
index 0000000..7c7c8c6
--- /dev/null
@@ -0,0 +1,2 @@
+cmd/go/internal/imports/testdata/test/child
+fmt