#!/bin/bash

# Copyright 2015 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -eu

TEMP_DIR="$(mktemp -d ${TMPDIR:-/tmp}/test_temp_dir.XXXXXX)"
trap 'rm -rf "${TEMP_DIR}"' ERR EXIT

TEST_APP_DIR="${TEMP_DIR}/test_app_dir"
mkdir "${TEST_APP_DIR}"
unzip -qq -d "${TEST_APP_DIR}" "%(test_app_ipa)s"
TEST_APP_DIR="${TEST_APP_DIR}/Payload/%(test_app_name)s.app"

XCTEST_APP_DIR="${TEMP_DIR}/xctest_app_dir"
mkdir "${XCTEST_APP_DIR}"
unzip -qq -d "${XCTEST_APP_DIR}" "%(xctest_app_ipa)s"
XCTEST_APP_DIR="${XCTEST_APP_DIR}/Payload/%(xctest_app_name)s.xctest"

killall "iOS Simulator" >/dev/null 2>/dev/null || :

SIMHOME="${TEMP_DIR}/simhome"
mkdir "${SIMHOME}"

LOGFILE="${TEMP_DIR}/logfile"

SIMULATOR_PLATFORM="$(/usr/bin/xcrun --sdk iphonesimulator --show-sdk-platform-path)"
SIMULATOR_DEV_LIBRARY="$SIMULATOR_PLATFORM/Developer/Library"

"%(iossim_path)s" \
    -u "${SIMHOME}" \
    -d "%(device_type)s" \
    -s "%(simulator_sdk)s" \
    -t 60 \
    -e DYLD_INSERT_LIBRARIES="$SIMULATOR_DEV_LIBRARY/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection" \
    -e "XCInjectBundle=${TEST_APP_DIR}" \
    -e "XCInjectBundleInto=${XCTEST_APP_DIR}" \
    -e DYLD_FALLBACK_FRAMEWORK_PATH="$SIMULATOR_DEV_LIBRARY/Frameworks" \
    "${XCTEST_APP_DIR}" \
    -NSTreatUnknownArgumentsAsOpen NO \
    -ApplePersistenceIgnoreState YES \
    -XCTest All \
    "${TEST_APP_DIR}" \
    2>&1 | tee "${LOGFILE}"

killall "iOS Simulator" >/dev/null 2>/dev/null || :

# TODO(danielwh): Much better support for detecting failures. Actually parse the log.
if grep -q "with [1-9].* failure" "${LOGFILE}"; then
  exit 1
fi
