From 2b57a10db419186b7f8155ca64be1a0a4916788f Mon Sep 17 00:00:00 2001 From: Muxi Yan Date: Mon, 11 Dec 2017 11:19:08 -0800 Subject: [PATCH] pre-boot xcode sim in objc-tests --- src/objective-c/tests/run_tests.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/objective-c/tests/run_tests.sh b/src/objective-c/tests/run_tests.sh index 62c4e10b993..a9a97aad2cc 100755 --- a/src/objective-c/tests/run_tests.sh +++ b/src/objective-c/tests/run_tests.sh @@ -34,6 +34,18 @@ $BINDIR/interop_server --port=5051 --max_send_message_size=8388608 --use_tls & # Kill them when this script exits. trap 'kill -9 `jobs -p` ; echo "EXIT TIME: $(date)"' EXIT +# Boot Xcode first with several retries since Xcode might fail due to a bug: +# http://www.openradar.me/29785686 +xcrun simctl list | egrep 'iPhone 6 \(' +udid=`xcrun simctl list | egrep 'iPhone 6 \(.*\) \(.*\)' | sed -E 's/ *iPhone 6 \(([^\)]*)\).*/\1/g' | head -n 1` +retries=0 +while [ $retries -lt 3 ] && ! open -a Simulator --args -CurrentDeviceUDID $udid ; do +retries=$(($retries+1)) +done +if [ $retries == 3 ]; then + exit 1 +fi + # xcodebuild is very verbose. We filter its output and tell Bash to fail if any # element of the pipe fails. # TODO(jcanizales): Use xctool instead? Issue #2540.