From e3d99a3f8608e308eedc201b83eeb2f0e0d9dc81 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sun, 24 Feb 2019 15:18:02 +0100 Subject: misc/android,cmd/dist: move $GOROOT copying to the exec wrapper To run the standard library tests on Android, the androidtest.bash script copies GOROOT to the device. Move that logic to the android exec wrapper, thereby making androidtest.bash obsolete. Apart from making Android less special, the sharded builder infrastructure should now be able to run (emulated) Android builders and trybots without special treatment. Updates #23824 Change-Id: I41591fea9a15b38c6dcf84046ea57f1e9165eaa5 Reviewed-on: https://go-review.googlesource.com/c/163619 Run-TryBot: Elias Naur TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/androidtest.bash | 52 ++-------------------------------------------------- 1 file changed, 2 insertions(+), 50 deletions(-) (limited to 'src/androidtest.bash') 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 -- cgit v1.3