runtime: config overlay
This commit is contained in:
@@ -329,6 +329,12 @@ func TestIntVal(t *testing.T) {
|
|||||||
intVal(&ssa.Parameter{})
|
intVal(&ssa.Parameter{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIgnoreName(t *testing.T) {
|
||||||
|
if !ignoreName("runtime/foo.bar") || ignoreName("internal/abi.Type") {
|
||||||
|
t.Fatal("ignoreName failed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestErrImport(t *testing.T) {
|
func TestErrImport(t *testing.T) {
|
||||||
var ctx context
|
var ctx context
|
||||||
pkg := types.NewPackage("foo", "foo")
|
pkg := types.NewPackage("foo", "foo")
|
||||||
|
|||||||
@@ -134,9 +134,9 @@ func Do(args []string, conf *Config) ([]Package, error) {
|
|||||||
cfg.Mode |= packages.NeedForTest
|
cfg.Mode |= packages.NeedForTest
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(overlayFiles) > 0 {
|
if len(llruntime.OverlayFiles) > 0 {
|
||||||
cfg.Overlay = make(map[string][]byte)
|
cfg.Overlay = make(map[string][]byte)
|
||||||
for file, src := range overlayFiles {
|
for file, src := range llruntime.OverlayFiles {
|
||||||
overlay := unsafe.Slice(unsafe.StringData(src), len(src))
|
overlay := unsafe.Slice(unsafe.StringData(src), len(src))
|
||||||
cfg.Overlay[filepath.Join(env.GOROOT(), "src", file)] = overlay
|
cfg.Overlay[filepath.Join(env.GOROOT(), "src", file)] = overlay
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ func SkipToBuild(pkgPath string) bool {
|
|||||||
if _, ok := hasAltPkg[pkgPath]; ok {
|
if _, ok := hasAltPkg[pkgPath]; ok {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if _, ok := supportInternal[pkgPath]; ok {
|
if _, ok := supportedInternal[pkgPath]; ok {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
switch pkgPath {
|
switch pkgPath {
|
||||||
@@ -27,13 +27,14 @@ func IgnoreName(name string) bool {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const internal = "internal/"
|
const internal = "internal/"
|
||||||
return (strings.HasPrefix(name, internal) && IsSupportInternal(name)) ||
|
return (strings.HasPrefix(name, internal) && !IsSupportedInternal(name)) ||
|
||||||
strings.HasPrefix(name, "runtime/") || strings.HasPrefix(name, "arena.") ||
|
strings.HasPrefix(name, "runtime/") || strings.HasPrefix(name, "arena.") ||
|
||||||
strings.HasPrefix(name, "maps.") || strings.HasPrefix(name, "plugin.")
|
strings.HasPrefix(name, "maps.") || strings.HasPrefix(name, "plugin.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsSupportInternal(path string) (b bool) {
|
func IsSupportedInternal(name string) (b bool) {
|
||||||
_, b = supportInternal[path]
|
paths := strings.Split(name, ".")
|
||||||
|
_, b = supportedInternal[paths[0]]
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ var hasAltPkg = map[string]none{
|
|||||||
"io": {},
|
"io": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
var supportInternal = map[string]none{
|
var supportedInternal = map[string]none{
|
||||||
"internal/abi": {},
|
"internal/abi": {},
|
||||||
"internal/bytealg": {},
|
"internal/bytealg": {},
|
||||||
"internal/itoa": {},
|
"internal/itoa": {},
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package build
|
package runtime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
_ "embed"
|
_ "embed"
|
||||||
@@ -13,7 +13,7 @@ var testing_testing string
|
|||||||
//go:embed _overlay/net/textproto/textproto.go
|
//go:embed _overlay/net/textproto/textproto.go
|
||||||
var net_textproto string
|
var net_textproto string
|
||||||
|
|
||||||
var overlayFiles = map[string]string{
|
var OverlayFiles = map[string]string{
|
||||||
"math/exp_amd64.go": "package math;",
|
"math/exp_amd64.go": "package math;",
|
||||||
"go/parser/resolver.go": go_parser_resolver,
|
"go/parser/resolver.go": go_parser_resolver,
|
||||||
"testing/testing.go": testing_testing,
|
"testing/testing.go": testing_testing,
|
||||||
Reference in New Issue
Block a user