David Crawshaw | dd95244 | 2015-03-30 08:47:07 -0400 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | # Copyright 2015 The Go Authors. All rights reserved. |
| 3 | # Use of this source code is governed by a BSD-style |
| 4 | # license that can be found in the LICENSE file. |
| 5 | |
| 6 | # For testing darwin/arm{,64} on iOS. |
| 7 | |
| 8 | set -e |
| 9 | ulimit -c 0 # no core files |
| 10 | |
| 11 | if [ ! -f make.bash ]; then |
| 12 | echo 'iostest.bash must be run from $GOROOT/src' 1>&2 |
| 13 | exit 1 |
| 14 | fi |
| 15 | |
| 16 | if [ -z $GOOS ]; then |
| 17 | export GOOS=darwin |
| 18 | fi |
| 19 | if [ "$GOOS" != "darwin" ]; then |
| 20 | echo "iostest.bash requires GOOS=darwin, got GOOS=$GOOS" 1>&2 |
| 21 | exit 1 |
| 22 | fi |
Josh Bleecher Snyder | c45f4b7 | 2015-04-03 11:02:32 -0700 | [diff] [blame] | 23 | if [ "$GOARCH" != "arm" ] && [ "$GOARCH" != "arm64" ]; then |
| 24 | echo "iostest.bash requires GOARCH=arm or GOARCH=arm64, got GOARCH=$GOARCH" 1>&2 |
| 25 | exit 1 |
| 26 | fi |
David Crawshaw | dd95244 | 2015-03-30 08:47:07 -0400 | [diff] [blame] | 27 | if [ "$GOARCH" == "arm" ]; then |
| 28 | export GOARM=7 |
| 29 | fi |
| 30 | |
Josh Bleecher Snyder | 4af5dcb | 2015-04-13 09:30:56 -0700 | [diff] [blame] | 31 | if [ "$1" == "-restart" ]; then |
| 32 | # Reboot to make sure previous runs do not interfere with the current run. |
| 33 | # It is reasonably easy for a bad program leave an iOS device in an |
| 34 | # almost unusable state. |
| 35 | idevicediagnostics restart |
| 36 | # Initial sleep to make sure we are restarting before we start polling. |
| 37 | sleep 30 |
| 38 | # Poll until the device has restarted. |
| 39 | until idevicediagnostics diagnostics; do |
| 40 | # TODO(crawshaw): replace with a test app using go_darwin_arm_exec. |
| 41 | echo "waiting for idevice to come online" |
| 42 | sleep 10 |
| 43 | done |
| 44 | # Diagnostics are reported during boot before the device can start an |
| 45 | # app. Wait a little longer before trying to use the device. |
| 46 | sleep 30 |
| 47 | fi |
David Crawshaw | dd95244 | 2015-03-30 08:47:07 -0400 | [diff] [blame] | 48 | |
| 49 | unset GOBIN |
| 50 | export GOROOT=$(dirname $(pwd)) |
| 51 | export PATH=$GOROOT/bin:$PATH |
| 52 | export CGO_ENABLED=1 |
| 53 | export CC_FOR_TARGET=$GOROOT/misc/ios/clangwrap.sh |
| 54 | |
| 55 | # Run the build for the host bootstrap, so we can build go_darwin_arm_exec. |
Josh Bleecher Snyder | 4af5dcb | 2015-04-13 09:30:56 -0700 | [diff] [blame] | 56 | # Also lets us fail early before the (slow) ios-deploy if the build is broken. |
David Crawshaw | dd95244 | 2015-03-30 08:47:07 -0400 | [diff] [blame] | 57 | ./make.bash |
| 58 | |
| 59 | GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH go build \ |
| 60 | -o ../bin/go_darwin_${GOARCH}_exec \ |
| 61 | ../misc/ios/go_darwin_arm_exec.go |
| 62 | |
David Crawshaw | bfd441f | 2015-04-15 15:03:41 -0400 | [diff] [blame] | 63 | if [ "$GOIOS_DEV_ID" == "" ]; then |
| 64 | echo "detecting iOS development identity" |
| 65 | eval $(GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH go run ../misc/ios/detect.go) |
| 66 | fi |
| 67 | |
David Crawshaw | dd95244 | 2015-03-30 08:47:07 -0400 | [diff] [blame] | 68 | # Run standard build and tests. |
| 69 | ./all.bash --no-clean |