mirror of
https://github.com/golang/go
synced 2024-11-05 18:36:08 +00:00
misc/android: fix detection of GOROOT tests
strings.HasPrefix is not good enough to determine whether a path is a subdirectory of another because it does not respect path boundaries. filepath.Rel is good eonugh as long as we filter out results that use parent directories, "..". Hopefully fix the android emulator builders on the subrepositories. Change-Id: I17ee7e0028c0b0b26a6c5f67629f53c9a660c6e5 Reviewed-on: https://go-review.googlesource.com/c/go/+/167117 Run-TryBot: Elias Naur <mail@eliasnaur.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
d6891bd480
commit
10aede26d0
1 changed files with 7 additions and 11 deletions
|
@ -196,12 +196,10 @@ func subdir() (pkgpath string, underGoRoot bool, err error) {
|
|||
if err != nil {
|
||||
return "", false, err
|
||||
}
|
||||
if strings.HasPrefix(cwd, goroot) {
|
||||
subdir, err := filepath.Rel(goroot, cwd)
|
||||
if err != nil {
|
||||
return "", false, err
|
||||
if subdir, err := filepath.Rel(goroot, cwd); err == nil {
|
||||
if !strings.Contains(subdir, "..") {
|
||||
return subdir, true, nil
|
||||
}
|
||||
return subdir, true, nil
|
||||
}
|
||||
|
||||
for _, p := range filepath.SplitList(build.Default.GOPATH) {
|
||||
|
@ -209,12 +207,10 @@ func subdir() (pkgpath string, underGoRoot bool, err error) {
|
|||
if err != nil {
|
||||
return "", false, err
|
||||
}
|
||||
if !strings.HasPrefix(cwd, pabs) {
|
||||
continue
|
||||
}
|
||||
subdir, err := filepath.Rel(pabs, cwd)
|
||||
if err == nil {
|
||||
return subdir, false, nil
|
||||
if subdir, err := filepath.Rel(pabs, cwd); err == nil {
|
||||
if !strings.Contains(subdir, "..") {
|
||||
return subdir, false, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
return "", false, fmt.Errorf("the current path %q is not in either GOROOT(%q) or GOPATH(%q)",
|
||||
|
|
Loading…
Reference in a new issue