mirror of
https://github.com/golang/go
synced 2024-11-24 00:00:23 -07:00
da2d02a935
The androidtest.bash script encodes the additional steps to build Go and run tests on Android. In order to add sharded builders and trybots, Android needs to fit into the usual make.bash + cmd/dist test pattern. This change moves building the exec wrapper into cmd/dist bootstrap. Do the same for iOS while we're here. Updates #23824 Change-Id: I58a1b0679c3a6c92fdc7fff464b469641f1fee74 Reviewed-on: https://go-review.googlesource.com/c/163618 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
70 lines
1.9 KiB
Bash
Executable File
70 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright 2015 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.
|
|
|
|
# For testing darwin/arm{,64} on iOS.
|
|
|
|
set -e
|
|
ulimit -c 0 # no core files
|
|
|
|
if [ ! -f make.bash ]; then
|
|
echo 'iostest.bash must be run from $GOROOT/src' 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z $GOOS ]; then
|
|
export GOOS=darwin
|
|
fi
|
|
if [ "$GOOS" != "darwin" ]; then
|
|
echo "iostest.bash requires GOOS=darwin, got GOOS=$GOOS" 1>&2
|
|
exit 1
|
|
fi
|
|
if [ "$GOARCH" != "arm" ] && [ "$GOARCH" != "arm64" ]; then
|
|
echo "iostest.bash requires GOARCH=arm or GOARCH=arm64, got GOARCH=$GOARCH" 1>&2
|
|
exit 1
|
|
fi
|
|
if [ "$GOARCH" = "arm" ]; then
|
|
export GOARM=7
|
|
fi
|
|
|
|
if [ "$1" = "-restart" ]; then
|
|
# Reboot to make sure previous runs do not interfere with the current run.
|
|
# It is reasonably easy for a bad program leave an iOS device in an
|
|
# almost unusable state.
|
|
IDEVARGS=
|
|
if [ -n "$GOIOS_DEVICE_ID" ]; then
|
|
IDEVARGS="-u $GOIOS_DEVICE_ID"
|
|
fi
|
|
idevicediagnostics $IDEVARGS restart
|
|
# Initial sleep to make sure we are restarting before we start polling.
|
|
sleep 30
|
|
# Poll until the device has restarted.
|
|
until idevicediagnostics $IDEVARGS diagnostics; do
|
|
# TODO(crawshaw): replace with a test app using go_darwin_arm_exec.
|
|
echo "waiting for idevice to come online"
|
|
sleep 10
|
|
done
|
|
# Diagnostics are reported during boot before the device can start an
|
|
# app. Wait a little longer before trying to use the device.
|
|
sleep 30
|
|
fi
|
|
|
|
unset GOBIN
|
|
export GOROOT=$(dirname $(pwd))
|
|
export PATH=$GOROOT/bin:$PATH
|
|
export CGO_ENABLED=1
|
|
export CC_FOR_TARGET=$GOROOT/misc/ios/clangwrap.sh
|
|
|
|
# Run the build for the host bootstrap, so we can build detect.go.
|
|
# Also lets us fail early before the (slow) ios-deploy if the build is broken.
|
|
./make.bash
|
|
|
|
if [ "$GOIOS_DEV_ID" = "" ]; then
|
|
echo "detecting iOS development identity"
|
|
eval $(GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH go run ../misc/ios/detect.go)
|
|
fi
|
|
|
|
# Run standard tests.
|
|
bash run.bash --no-rebuild
|