Update linux-x86 Go prebuilts from ab/7362735
https://ci.android.com/builds/branches/aosp-build-tools-release/grid?head=7362735&tail=7362735
Update script: toolchain/go/update-prebuilts.sh
Test: Treehugger presubmit
Change-Id: I94be24fb6cf1b227ba5ff0faed2605310b5c167f
diff --git a/test/run.go b/test/run.go
index 95b94b7..624f223 100644
--- a/test/run.go
+++ b/test/run.go
@@ -14,6 +14,7 @@
"fmt"
"hash/fnv"
"io"
+ "io/fs"
"io/ioutil"
"log"
"os"
@@ -437,7 +438,7 @@
}
}
- if name == ctxt.GOOS || name == ctxt.GOARCH {
+ if name == ctxt.GOOS || name == ctxt.GOARCH || name == "gc" {
return true
}
@@ -466,6 +467,8 @@
return "" == os.Getenv("GO_GCFLAGS")
}
+var errTimeout = errors.New("command exceeded time limit")
+
// run runs a test.
func (t *test) run() {
start := time.Now()
@@ -641,16 +644,18 @@
case err = <-done:
// ok
case <-tick.C:
+ cmd.Process.Signal(os.Interrupt)
+ time.Sleep(1 * time.Second)
cmd.Process.Kill()
- err = <-done
- // err = errors.New("Test timeout")
+ <-done
+ err = errTimeout
}
tick.Stop()
}
} else {
err = cmd.Run()
}
- if err != nil {
+ if err != nil && err != errTimeout {
err = fmt.Errorf("%s\n%s", err, buf.Bytes())
}
return buf.Bytes(), err
@@ -730,6 +735,10 @@
t.err = fmt.Errorf("compilation succeeded unexpectedly\n%s", out)
return
}
+ if err == errTimeout {
+ t.err = fmt.Errorf("compilation timed out")
+ return
+ }
} else {
if err != nil {
t.err = err
@@ -1489,7 +1498,7 @@
// value[0] is the variant-changing environment variable, and values[1:]
// are the supported variants.
archVariants = map[string][]string{
- "386": {"GO386", "387", "sse2"},
+ "386": {"GO386", "sse2", "softfloat"},
"amd64": {},
"arm": {"GOARM", "5", "6", "7"},
"arm64": {},
@@ -1793,7 +1802,7 @@
return err
}
- return filepath.Walk(srcRoot, func(srcPath string, info os.FileInfo, err error) error {
+ return filepath.WalkDir(srcRoot, func(srcPath string, d fs.DirEntry, err error) error {
if err != nil || srcPath == srcRoot {
return err
}
@@ -1804,14 +1813,16 @@
}
dstPath := filepath.Join(dstRoot, suffix)
- perm := info.Mode() & os.ModePerm
- if info.Mode()&os.ModeSymlink != 0 {
+ var info fs.FileInfo
+ if d.Type()&os.ModeSymlink != 0 {
info, err = os.Stat(srcPath)
- if err != nil {
- return err
- }
- perm = info.Mode() & os.ModePerm
+ } else {
+ info, err = d.Info()
}
+ if err != nil {
+ return err
+ }
+ perm := info.Mode() & os.ModePerm
// Always copy directories (don't symlink them).
// If we add a file in the overlay, we don't want to add it in the original.