diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/androidtest.bash | 52 | ||||
| -rw-r--r-- | src/cmd/dist/build.go | 6 |
2 files changed, 7 insertions, 51 deletions
diff --git a/src/androidtest.bash b/src/androidtest.bash index 12f240cc58..ba776d2278 100755 --- a/src/androidtest.bash +++ b/src/androidtest.bash @@ -4,8 +4,6 @@ # license that can be found in the LICENSE file. # For testing Android. -# The compiler runs locally, then a copy of the GOROOT is pushed to a -# target device using adb, and the tests are run there. set -e ulimit -c 0 # no core files @@ -31,55 +29,9 @@ fi export CGO_ENABLED=1 unset GOBIN -# Do the build first, so we can build the 'cleaner' binary. -# Also lets us fail early before the (slow) adb push if the build is broken. -. ./make.bash --no-banner export GOROOT=$(dirname $(pwd)) +# Put the exec wrapper into PATH export PATH=$GOROOT/bin:$PATH -export pkgdir=$(dirname $(go list -f '{{.Target}}' runtime)) -if [ "$pkgdir" = "" ]; then - echo "could not find android pkg dir" 1>&2 - exit 1 -fi - -export ANDROID_TEST_DIR=/tmp/androidtest-$$ - -function cleanup() { - rm -rf ${ANDROID_TEST_DIR} -} -trap cleanup EXIT - -# Push GOROOT to target device. -# -# The adb sync command will sync either the /system or /data -# directories of an android device from a similar directory -# on the host. We copy the files required for running tests under -# /data/local/tmp/goroot. The adb sync command does not follow -# symlinks so we have to copy. -export ANDROID_PRODUCT_OUT="${ANDROID_TEST_DIR}/out" -FAKE_GOROOT=$ANDROID_PRODUCT_OUT/data/local/tmp/goroot -mkdir -p $FAKE_GOROOT -mkdir -p $FAKE_GOROOT/pkg -cp -a "${GOROOT}/src" "${FAKE_GOROOT}/" -cp -a "${GOROOT}/test" "${FAKE_GOROOT}/" -cp -a "${GOROOT}/lib" "${FAKE_GOROOT}/" -cp -a "${pkgdir}" "${FAKE_GOROOT}/pkg/" - -echo '# Syncing test files to android device' -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 -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 $GOANDROID_ADB_FLAGS push $CLEANER /data/local/tmp/cleaner -adb $GOANDROID_ADB_FLAGS shell /data/local/tmp/cleaner - -echo '' - # Run standard tests. -bash run.bash --no-rebuild +bash all.bash diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 6388e3e863..43e1fe66f3 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -1366,7 +1366,11 @@ func cmdbootstrap() { // Remove go_bootstrap now that we're done. xremove(pathf("%s/go_bootstrap", tooldir)) - // Build the exec wrapper if necessary. + if goos == "android" { + // Make sure the exec wrapper will sync a fresh $GOROOT to the device. + xremove(pathf("%s/go_android_exec-adb-sync-status", os.TempDir())) + } + if wrapperPath := wrapperPathFor(goos, goarch); wrapperPath != "" { oldcc := os.Getenv("CC") os.Setenv("GOOS", gohostos) |
