RxSwift/scripts/automation-tests.sh

98 lines
2.5 KiB
Bash
Raw Normal View History

2015-08-02 13:00:39 +03:00
#!/bin/bash
set -e
2015-08-06 02:35:23 +03:00
NUM_OF_TESTS=4
2015-08-02 13:00:39 +03:00
CURRENT_DIR="$( dirname "${BASH_SOURCE[0]}" )"
BUILD_DIRECTORY=build
APP=RxExample
2015-10-03 20:33:28 +03:00
CONFIGURATIONS=(Debug Release-Tests Release)
2015-08-02 13:00:39 +03:00
. scripts/common.sh
cd "${CURRENT_DIR}/.."
ROOT=`pwd`
BUILD_DIRECTORY="${ROOT}/build"
function runAutomation() {
2015-08-06 02:35:23 +03:00
SCHEME=$1
2015-08-02 13:00:39 +03:00
CONFIGURATION=$2
2015-08-06 02:35:23 +03:00
SIMULATOR=$3
2015-08-02 13:00:39 +03:00
APP="${SCHEME}"
echo
printf "${GREEN}Building example for automation ${BOLDCYAN}${SIMULATOR} - ${CONFIGURATION}${RESET}"
echo
2015-08-06 02:35:23 +03:00
rx $SCHEME $CONFIGURATION $SIMULATOR build
2015-08-02 13:00:39 +03:00
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
2015-08-02 13:00:39 +03:00
echo
2015-10-03 20:33:28 +03:00
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"
2015-08-02 13:00:39 +03:00
echo
2015-10-03 20:33:28 +03:00
if is_real_device "${SIMULATOR}"; then
/Users/kzaher/Projects/ios-deploy/ios-deploy --bundle "${APP_PATH}"
else
xcrun simctl install ${SIMULATOR_ID} "${APP_PATH}"
2015-10-03 20:33:28 +03:00
fi
2015-08-02 13:00:39 +03:00
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;)
2015-08-02 13:00:39 +03:00
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"
2015-08-02 13:00:39 +03:00
fi
popd
}
AUTOMATION_SIMULATORS=("Krunoslav Zahers iPhone" ${DEFAULT_IOS9_SIMULATOR} ${DEFAULT_IOS8_SIMULATOR})
2015-10-03 20:33:28 +03:00
IFS=""
for simulator in ${AUTOMATION_SIMULATORS[@]}
2015-08-02 13:00:39 +03:00
do
2015-10-04 13:33:05 +03:00
for configuration in ${CONFIGURATIONS[@]}
2015-08-02 13:00:39 +03:00
do
2015-08-06 02:35:23 +03:00
runAutomation "RxExample-iOS" ${configuration} ${simulator}
2015-08-02 13:00:39 +03:00
done
done