mirror of
https://github.com/golang/go
synced 2024-11-26 07:38:00 -07:00
[dev.typeparams] cmd/compile/internal/importer: review of gcimporter_test.go
This CL removes the // UNREVIEWED disclaimer at the top of the file. This file is essentially a copy of its reviewed version at src/go/internal/gcimporter/gcimporter_test.go with adjustments to make it work for the compiler and types2. To see the changes made with respect to the original, compare patchset 2 against patchset 3. Change-Id: Iaeb9a56a6a56f4c1d93e7bfedc5b1f1968fa6792 Reviewed-on: https://go-review.googlesource.com/c/go/+/324131 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
3c1d502a19
commit
d36b7d7bdd
@ -1,4 +1,3 @@
|
|||||||
// UNREVIEWED
|
|
||||||
// Copyright 2011 The Go Authors. All rights reserved.
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
@ -10,7 +9,6 @@ import (
|
|||||||
"cmd/compile/internal/types2"
|
"cmd/compile/internal/types2"
|
||||||
"fmt"
|
"fmt"
|
||||||
"internal/testenv"
|
"internal/testenv"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -64,7 +62,7 @@ const maxTime = 30 * time.Second
|
|||||||
|
|
||||||
func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) {
|
func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) {
|
||||||
dirname := filepath.Join(runtime.GOROOT(), "pkg", runtime.GOOS+"_"+runtime.GOARCH, dir)
|
dirname := filepath.Join(runtime.GOROOT(), "pkg", runtime.GOOS+"_"+runtime.GOARCH, dir)
|
||||||
list, err := ioutil.ReadDir(dirname)
|
list, err := os.ReadDir(dirname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("testDir(%s): %s", dirname, err)
|
t.Fatalf("testDir(%s): %s", dirname, err)
|
||||||
}
|
}
|
||||||
@ -92,7 +90,7 @@ func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func mktmpdir(t *testing.T) string {
|
func mktmpdir(t *testing.T) string {
|
||||||
tmpdir, err := ioutil.TempDir("", "gcimporter_test")
|
tmpdir, err := os.MkdirTemp("", "gcimporter_test")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("mktmpdir:", err)
|
t.Fatal("mktmpdir:", err)
|
||||||
}
|
}
|
||||||
@ -142,7 +140,7 @@ func TestVersionHandling(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const dir = "./testdata/versions"
|
const dir = "./testdata/versions"
|
||||||
list, err := ioutil.ReadDir(dir)
|
list, err := os.ReadDir(dir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -195,7 +193,7 @@ func TestVersionHandling(t *testing.T) {
|
|||||||
|
|
||||||
// create file with corrupted export data
|
// create file with corrupted export data
|
||||||
// 1) read file
|
// 1) read file
|
||||||
data, err := ioutil.ReadFile(filepath.Join(dir, name))
|
data, err := os.ReadFile(filepath.Join(dir, name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -212,7 +210,7 @@ func TestVersionHandling(t *testing.T) {
|
|||||||
// 4) write the file
|
// 4) write the file
|
||||||
pkgpath += "_corrupted"
|
pkgpath += "_corrupted"
|
||||||
filename := filepath.Join(corruptdir, pkgpath) + ".a"
|
filename := filepath.Join(corruptdir, pkgpath) + ".a"
|
||||||
ioutil.WriteFile(filename, data, 0666)
|
os.WriteFile(filename, data, 0666)
|
||||||
|
|
||||||
// test that importing the corrupted file results in an error
|
// test that importing the corrupted file results in an error
|
||||||
_, err = Import(make(map[string]*types2.Package), pkgpath, corruptdir, nil)
|
_, err = Import(make(map[string]*types2.Package), pkgpath, corruptdir, nil)
|
||||||
@ -261,8 +259,7 @@ var importedObjectTests = []struct {
|
|||||||
{"io.Reader", "type Reader interface{Read(p []byte) (n int, err error)}"},
|
{"io.Reader", "type Reader interface{Read(p []byte) (n int, err error)}"},
|
||||||
{"io.ReadWriter", "type ReadWriter interface{Reader; Writer}"},
|
{"io.ReadWriter", "type ReadWriter interface{Reader; Writer}"},
|
||||||
{"go/ast.Node", "type Node interface{End() go/token.Pos; Pos() go/token.Pos}"},
|
{"go/ast.Node", "type Node interface{End() go/token.Pos; Pos() go/token.Pos}"},
|
||||||
// go/types.Type has grown much larger - excluded for now
|
{"go/types.Type", "type Type interface{String() string; Underlying() Type}"},
|
||||||
// {"go/types.Type", "type Type interface{String() string; Underlying() Type}"},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestImportedTypes(t *testing.T) {
|
func TestImportedTypes(t *testing.T) {
|
||||||
@ -457,17 +454,17 @@ func TestIssue13898(t *testing.T) {
|
|||||||
t.Fatal("go/types not found")
|
t.Fatal("go/types not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
// look for go/types2.Object type
|
// look for go/types.Object type
|
||||||
obj := lookupObj(t, goTypesPkg.Scope(), "Object")
|
obj := lookupObj(t, goTypesPkg.Scope(), "Object")
|
||||||
typ, ok := obj.Type().(*types2.Named)
|
typ, ok := obj.Type().(*types2.Named)
|
||||||
if !ok {
|
if !ok {
|
||||||
t.Fatalf("go/types2.Object type is %v; wanted named type", typ)
|
t.Fatalf("go/types.Object type is %v; wanted named type", typ)
|
||||||
}
|
}
|
||||||
|
|
||||||
// lookup go/types2.Object.Pkg method
|
// lookup go/types.Object.Pkg method
|
||||||
m, index, indirect := types2.LookupFieldOrMethod(typ, false, nil, "Pkg")
|
m, index, indirect := types2.LookupFieldOrMethod(typ, false, nil, "Pkg")
|
||||||
if m == nil {
|
if m == nil {
|
||||||
t.Fatalf("go/types2.Object.Pkg not found (index = %v, indirect = %v)", index, indirect)
|
t.Fatalf("go/types.Object.Pkg not found (index = %v, indirect = %v)", index, indirect)
|
||||||
}
|
}
|
||||||
|
|
||||||
// the method must belong to go/types
|
// the method must belong to go/types
|
||||||
|
Loading…
Reference in New Issue
Block a user