mirror of
https://github.com/golang/go
synced 2024-09-29 22:14:29 -06:00
cmd/internal/objabi: test runtime package list
This adds a test that all packages imported by runtime are marked as runtime tests by LookupPkgSpecial. We add two packages that were missing from the list. Change-Id: I2545980ab09474de0181cf546541527d8baaf2e2 Reviewed-on: https://go-review.googlesource.com/c/go/+/521700 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
fbcf43c60b
commit
3e73802c4a
@ -4,7 +4,12 @@
|
|||||||
|
|
||||||
package objabi
|
package objabi
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"internal/testenv"
|
||||||
|
"os/exec"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
func TestPathToPrefix(t *testing.T) {
|
func TestPathToPrefix(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
@ -31,3 +36,28 @@ func TestPathToPrefix(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRuntimePackageList(t *testing.T) {
|
||||||
|
// Test that all packages imported by the runtime are marked as runtime
|
||||||
|
// packages.
|
||||||
|
testenv.MustHaveGoBuild(t)
|
||||||
|
goCmd, err := testenv.GoTool()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
pkgList, err := exec.Command(goCmd, "list", "-deps", "runtime").Output()
|
||||||
|
if err != nil {
|
||||||
|
if err, ok := err.(*exec.ExitError); ok {
|
||||||
|
t.Log(string(err.Stderr))
|
||||||
|
}
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
for _, pkg := range strings.Split(strings.TrimRight(string(pkgList), "\n"), "\n") {
|
||||||
|
if pkg == "unsafe" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !LookupPkgSpecial(pkg).Runtime {
|
||||||
|
t.Errorf("package %s is imported by runtime, but not marked Runtime", pkg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -20,8 +20,6 @@ type PkgSpecial struct {
|
|||||||
//
|
//
|
||||||
// This should be set for runtime and all packages it imports, and may be
|
// This should be set for runtime and all packages it imports, and may be
|
||||||
// set for additional packages.
|
// set for additional packages.
|
||||||
//
|
|
||||||
// TODO(austin): Test that all of `go list -deps runtime` is marked Runtime.
|
|
||||||
Runtime bool
|
Runtime bool
|
||||||
|
|
||||||
// AllowAsmABI indicates that assembly in this package is allowed to use ABI
|
// AllowAsmABI indicates that assembly in this package is allowed to use ABI
|
||||||
@ -44,6 +42,8 @@ var runtimePkgs = []string{
|
|||||||
"internal/coverage/rtcov",
|
"internal/coverage/rtcov",
|
||||||
"internal/cpu",
|
"internal/cpu",
|
||||||
"internal/goarch",
|
"internal/goarch",
|
||||||
|
"internal/godebugs",
|
||||||
|
"internal/goexperiment",
|
||||||
"internal/goos",
|
"internal/goos",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user