build: androidtest.bash has to use copy for files to adb-sync.

androidtest.bash copies some go source to the android device
where the tests are going to run. It's necessary because some
tests require files and resources to be present. The copy is
done through adb sync. The script hoped faking the directory
using symlinks to work, but it doesn't. (adb sync doesn't follow
the symlinks) We need proper copy.

Change-Id: If55abca4958f159859e58512b0045f23654167e3
Reviewed-on: https://go-review.googlesource.com/2827
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/src/androidtest.bash b/src/androidtest.bash
index b250cf4..4968a00 100755
--- a/src/androidtest.bash
+++ b/src/androidtest.bash
@@ -38,14 +38,15 @@
 #
 # The adb sync command will sync either the /system or /data
 # directories of an android device from a similar directory
-# on the host. So we fake one with symlinks to push the GOROOT
-# into a subdirectory of /data.
+# 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=/tmp/androidtest-$$
 FAKE_GOROOT=$ANDROID_PRODUCT_OUT/data/local/tmp/goroot
 mkdir -p $FAKE_GOROOT
-ln -s $GOROOT/src $FAKE_GOROOT/src
-ln -s $GOROOT/test $FAKE_GOROOT/test
-ln -s $GOROOT/lib $FAKE_GOROOT/lib
+cp -R --preserve=all "${GOROOT}/src" "${FAKE_GOROOT}/"
+cp -R --preserve=all "${GOROOT}/test" "${FAKE_GOROOT}/"
+cp -R --preserve=all "${GOROOT}/lib" "${FAKE_GOROOT}/"
 echo '# Syncing test files to android device'
 time adb sync data &> /dev/null
 echo ''