]> Cypherpunks repositories - gostls13.git/commitdiff
misc,src: add support for specifying adb flags to the android harness
authorElias Naur <elias.naur@gmail.com>
Sat, 20 Jan 2018 18:56:51 +0000 (19:56 +0100)
committerElias Naur <elias.naur@gmail.com>
Sat, 20 Jan 2018 21:13:30 +0000 (21:13 +0000)
Introduce GOANDROID_ADB_FLAGS for additional flags to adb invocations.
With GOANDROID_ADG_FLAGS, the Android builders can distinguish between
emulator and device builds.

Change-Id: I11729926a523ee27f6a3795cb2cfb64a9454f0a5
Reviewed-on: https://go-review.googlesource.com/88795
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
misc/android/go_android_exec.go
misc/cgo/testcshared/cshared_test.go
src/androidtest.bash

index 49b7ae902c3837be2c893797d4a04419a27f9ad0..5671479d879bffe346240dffe99d1bdc197ead72 100644 (file)
@@ -21,6 +21,9 @@ import (
 )
 
 func run(args ...string) string {
+       if flags := os.Getenv("GOANDROID_ADB_FLAGS"); flags != "" {
+               args = append(strings.Split(flags, " "), args...)
+       }
        buf := new(bytes.Buffer)
        cmd := exec.Command("adb", args...)
        cmd.Stdout = io.MultiWriter(os.Stdout, buf)
index b9499fcf376c216536756175f6cbba21fee823b4..e43422de6e6a599e2dbbaf0ef04b8e0dc7f153f3 100644 (file)
@@ -56,7 +56,8 @@ func TestMain(m *testing.M) {
 
        androiddir = fmt.Sprintf("/data/local/tmp/testcshared-%d", os.Getpid())
        if GOOS == "android" {
-               cmd := exec.Command("adb", "shell", "mkdir", "-p", androiddir)
+               args := append(adbCmd(), "shell", "mkdir", "-p", androiddir)
+               cmd := exec.Command(args[0], args[1:]...)
                out, err := cmd.CombinedOutput()
                if err != nil {
                        log.Fatalf("setupAndroid failed: %v\n%s\n", err, out)
@@ -155,11 +156,19 @@ func cmdToRun(name string) string {
        return "./" + name + exeSuffix
 }
 
+func adbCmd() []string {
+       cmd := []string{"adb"}
+       if flags := os.Getenv("GOANDROID_ADB_FLAGS"); flags != "" {
+               cmd = append(cmd, strings.Split(flags, " ")...)
+       }
+       return cmd
+}
+
 func adbPush(t *testing.T, filename string) {
        if GOOS != "android" {
                return
        }
-       args := []string{"adb", "push", filename, fmt.Sprintf("%s/%s", androiddir, filename)}
+       args := append(adbCmd(), "push", filename, fmt.Sprintf("%s/%s", androiddir, filename))
        cmd := exec.Command(args[0], args[1:]...)
        if out, err := cmd.CombinedOutput(); err != nil {
                t.Fatalf("adb command failed: %v\n%s\n", err, out)
@@ -170,7 +179,7 @@ func adbRun(t *testing.T, env []string, adbargs ...string) string {
        if GOOS != "android" {
                t.Fatalf("trying to run adb command when operating system is not android.")
        }
-       args := []string{"adb", "shell"}
+       args := append(adbCmd(), "shell")
        // Propagate LD_LIBRARY_PATH to the adb shell invocation.
        for _, e := range env {
                if strings.Index(e, "LD_LIBRARY_PATH=") != -1 {
@@ -238,7 +247,7 @@ func createHeaders() error {
        }
 
        if GOOS == "android" {
-               args = []string{"adb", "push", libgoname, fmt.Sprintf("%s/%s", androiddir, libgoname)}
+               args = append(adbCmd(), "push", libgoname, fmt.Sprintf("%s/%s", androiddir, libgoname))
                cmd = exec.Command(args[0], args[1:]...)
                out, err = cmd.CombinedOutput()
                if err != nil {
@@ -271,7 +280,8 @@ func cleanupAndroid() {
        if GOOS != "android" {
                return
        }
-       cmd := exec.Command("adb", "shell", "rm", "-rf", androiddir)
+       args := append(adbCmd(), "shell", "rm", "-rf", androiddir)
+       cmd := exec.Command(args[0], args[1:]...)
        out, err := cmd.CombinedOutput()
        if err != nil {
                log.Fatalf("cleanupAndroid failed: %v\n%s\n", err, out)
index 3ac56d174592d5b95ef1767e59c487c98008d6a2..a790f95920cf8b1eeff3c0d632df984462b900e2 100755 (executable)
@@ -77,8 +77,8 @@ cp -a "${GOROOT}/lib" "${FAKE_GOROOT}/"
 cp -a "${pkgdir}" "${FAKE_GOROOT}/pkg/"
 
 echo '# Syncing test files to android device'
-adb shell mkdir -p /data/local/tmp/goroot
-time adb sync data &> /dev/null
+adb $GOANDROID_ADB_FLAGS shell mkdir -p /data/local/tmp/goroot
+time adb $GOANDROID_ADB_FLAGS sync data &> /dev/null
 
 export CLEANER=${ANDROID_TEST_DIR}/androidcleaner-$$
 cp ../misc/android/cleaner.go $CLEANER.go
@@ -86,8 +86,8 @@ echo 'var files = `' >> $CLEANER.go
 (cd $ANDROID_PRODUCT_OUT/data/local/tmp/goroot; find . >> $CLEANER.go)
 echo '`' >> $CLEANER.go
 go build -o $CLEANER $CLEANER.go
-adb push $CLEANER /data/local/tmp/cleaner
-adb shell /data/local/tmp/cleaner
+adb $GOANDROID_ADB_FLAGS push $CLEANER /data/local/tmp/cleaner
+adb $GOANDROID_ADB_FLAGS shell /data/local/tmp/cleaner
 
 echo ''