#!/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.
	idevicediagnostics restart
	# Initial sleep to make sure we are restarting before we start polling.
	sleep 30
	# Poll until the device has restarted.
	until idevicediagnostics 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 go_darwin_arm_exec.
# Also lets us fail early before the (slow) ios-deploy if the build is broken.
./make.bash

GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH go build \
	-o ../bin/go_darwin_${GOARCH}_exec \
	../misc/ios/go_darwin_arm_exec.go

if [ "$GOIOS_DEV_ID" == "" ]; then
	echo "detecting iOS development identity"
	eval $(GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH go run ../misc/ios/detect.go)
fi

# Run standard build and tests.
./all.bash --no-clean
