Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: third_party/go/src/golang.org/x/mobile/build/go_android_exec.go

Issue 1275153002: Remove third_party/golang.org/x/mobile as it is no longer used with Go 1.5. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Remove golang.org/x/mobile Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/go/src/golang.org/x/mobile/build/go_android_exec.go
diff --git a/third_party/go/src/golang.org/x/mobile/build/go_android_exec.go b/third_party/go/src/golang.org/x/mobile/build/go_android_exec.go
deleted file mode 100644
index fbeaf7fe7ac1213a4ec071c7a0c2957d5d9f1768..0000000000000000000000000000000000000000
--- a/third_party/go/src/golang.org/x/mobile/build/go_android_exec.go
+++ /dev/null
@@ -1,136 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// This program can be used as go_android_GOARCH_exec by the Go tool.
-// It executes binaries on an android device using adb.
-// This program is supposed to be called by
-// golang.org/x/mobile/build/androidtest.bash that arranges to copy
-// the tested repository source tree to the android device and invokes
-// go test. This program depends on PKG and DEVICEDIR environment variables
-// to identify the tested repository (e.g. golang.org/x/mobile) and
-// to find the source directory in the android device. The androidtest.bash
-// script is responsible for setting the environment variables.
-package main
-
-// This is adopted from golang.org/x/go/misc/android/go_android_exec.go.
-
-import (
- "bytes"
- "fmt"
- "go/build"
- "io"
- "log"
- "os"
- "os/exec"
- "path/filepath"
- "strconv"
- "strings"
- "text/template"
-)
-
-func run(args ...string) string {
- buf := new(bytes.Buffer)
- cmd := exec.Command("adb", args...)
- cmd.Stdout = io.MultiWriter(os.Stdout, buf)
- cmd.Stderr = os.Stderr
- log.Printf("adb %s", strings.Join(args, " "))
- err := cmd.Run()
- if err != nil {
- log.Fatalf("adb %s: %v", strings.Join(args, " "), err)
- }
- return buf.String()
-}
-
-func rel(cwd, pkg string) (string, error) {
- paths := build.Default.GOPATH
- for _, p := range filepath.SplitList(paths) {
- r, err := filepath.Rel(filepath.Join(p, "src", pkg), cwd)
- if err == nil {
- return r, nil
- }
- }
- return "", fmt.Errorf("%q is not under GOPATH(%q)", cwd, paths)
-}
-
-func main() {
- log.SetFlags(0)
- log.SetPrefix("go_android_exec: ")
-
- deviceRoot := "/data/local/tmp/"
- if v := os.Getenv("DEVICEDIR"); v != "" {
- deviceRoot = v
- }
-
- pkg := "golang.org/x/mobile"
- if v := os.Getenv("PKG"); v != "" {
- pkg = v
- }
-
- // Binary names can conflict.
- // E.g. template.test from the {html,text}/template packages.
- binName := filepath.Base(os.Args[1])
- deviceBin := fmt.Sprintf("%s/%s-%d", deviceRoot, binName, os.Getpid())
-
- // The push of the binary happens in parallel with other tests.
- // Unfortunately, a simultaneous call to adb shell hold open
- // file descriptors, so it is necessary to push then move to
- // avoid a "text file busy" error on execution.
- // https://code.google.com/p/android/issues/detail?id=65857
- run("push", "-p", os.Args[1], deviceBin+"-tmp")
- run("shell", "cp '"+deviceBin+"-tmp' '"+deviceBin+"'")
- run("shell", "rm '"+deviceBin+"-tmp'")
-
- cwd, err := os.Getwd()
- if err != nil {
- log.Fatal(err)
- }
-
- subdir, err := rel(cwd, pkg)
- if err != nil {
- log.Fatal(err)
- }
- subdir = filepath.Join(deviceRoot, pkg, subdir)
-
- // The adb shell command will return an exit code of 0 regardless
- // of the command run. E.g.
- // $ adb shell false
- // $ echo $?
- // 0
- // https://code.google.com/p/android/issues/detail?id=3254
- // So we append the exitcode to the output and parse it from there.
- t := template.Must(template.New("cmd").Parse(
- `export TMPDIR={{.Root}}/tmp; \
- mkdir -p "$TMPDIR"; \
- cd "{{.SubDir}}"; \
- {{.Bin}} {{.Args}}; \
- echo -n {{.ExitStr}}$?`))
-
- var cmd bytes.Buffer
- const exitstr = "exitcode="
- if err := t.Execute(&cmd, struct {
- Root, SubDir, Bin, Args, ExitStr string
- }{
- Root: deviceRoot,
- SubDir: subdir,
- Bin: deviceBin,
- Args: strings.Join(os.Args[2:], " "),
- ExitStr: exitstr,
- }); err != nil {
- log.Panicf("template error: %v", err)
- }
-
- output := run("shell", cmd.String())
- output = output[strings.LastIndex(output, "\n")+1:]
-
- if !strings.HasPrefix(output, exitstr) {
- log.Fatalf("no exit code: %q", output)
- }
- code, err := strconv.Atoi(output[len(exitstr):])
- if err != nil {
- log.Fatalf("bad exit code: %v", err)
- }
- os.Exit(code)
-}

Powered by Google App Engine
This is Rietveld 408576698