RxSwift/scripts/automation-tests.sh

98 lines
2.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -e
NUM_OF_TESTS=4
CURRENT_DIR="$( dirname "${BASH_SOURCE[0]}" )"
BUILD_DIRECTORY=build
APP=RxExample
CONFIGURATIONS=(Debug Release-Tests Release)
. scripts/common.sh
cd "${CURRENT_DIR}/.."
ROOT=`pwd`
BUILD_DIRECTORY="${ROOT}/build"
function runAutomation() {
SCHEME=$1
CONFIGURATION=$2
SIMULATOR=$3
APP="${SCHEME}"
echo
printf "${GREEN}Building example for automation ${BOLDCYAN}${SIMULATOR} - ${CONFIGURATION}${RESET}"
echo
rx $SCHEME $CONFIGURATION $SIMULATOR build
echo
printf "${GREEN}Quitting iOS Simulator ...${RESET}"
echo
osascript -e 'quit app "iOS Simulator.app"' > /dev/null
if is_real_device "${SIMULATOR}"; then
SIMULATOR_ID="${SIMULATOR}"
else
SIMULATOR_ID=`simulator_ids "${SIMULATOR}"`
echo
printf "${GREEN}Firing up simulator ${BOLDCYAN}${SIMULATOR}${GREEN}...${RESET}\n"
echo
xcrun instruments -w ${SIMULATOR_ID} > /dev/null 2>&1 || echo
fi
echo
if is_real_device "${SIMULATOR}"; then
OUTPUT_DIR=${CONFIGURATION}-iphoneos
else
OUTPUT_DIR=${CONFIGURATION}-iphonesimulator
fi
APP_PATH="${BUILD_DIRECTORY}/Build/Products/${OUTPUT_DIR}/${APP}.app"
printf "${GREEN}Installing the app ${BOLDCYAN}'${APP_PATH}'${GREEN} (${CONFIGURATION}) ${RESET}...\n"
echo
if is_real_device "${SIMULATOR}"; then
/Users/kzaher/Projects/ios-deploy/ios-deploy --bundle "${APP_PATH}"
else
xcrun simctl install ${SIMULATOR_ID} "${APP_PATH}"
fi
pushd $TMPDIR
rm -rf instrumentscli0.trace || echo
echo
printf "${GREEN}Running instruments ${BOLDCYAN}'${APP}'${GREEN}...${RESET}\n"
echo
OUTPUT="${TMPDIR}/output.txt"
instruments -w "${SIMULATOR_ID}" -t Automation "${APP_PATH}" -e UIASCRIPT "${ROOT}/scripts/automation-tests/main.js" | tee "${OUTPUT}" #| grep "Pass" #|| (open instrumentscli0.trace; exit -1;)
COUNT=`grep Pass: "$TMPDIR/output.txt" | wc -l`
if [ "$COUNT" -lt "$NUM_OF_TESTS" ]; then
echo
printf "${RED}${SIMULATOR} - ${CONFIGURATION} tests do not pass${RESET}"
echo
cat "${OUTPUT}"
echo
printf "${RED}Only ${COUNT} of ${NUM_OF_TESTS} pass ${RESET}"
echo
open ./instrumentscli0.trace;
exit -1;
else
printf "${GREEN}Automation says ok on ${BOLDCYAN}${SIMULATOR} - ${CONFIGURATION}${RESET}\n"
fi
popd
}
AUTOMATION_SIMULATORS=("Krunoslav Zahers iPhone" ${DEFAULT_IOS9_SIMULATOR} ${DEFAULT_IOS8_SIMULATOR})
IFS=""
for simulator in ${AUTOMATION_SIMULATORS[@]}
do
for configuration in ${CONFIGURATIONS[@]}
do
runAutomation "RxExample-iOS" ${configuration} ${simulator}
done
done