diff options
Diffstat (limited to 'objectivec/Tests/CocoaPods/run_tests.sh')
-rwxr-xr-x | objectivec/Tests/CocoaPods/run_tests.sh | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/objectivec/Tests/CocoaPods/run_tests.sh b/objectivec/Tests/CocoaPods/run_tests.sh deleted file mode 100755 index 6d3e12be..00000000 --- a/objectivec/Tests/CocoaPods/run_tests.sh +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/bash -# -# Helper to run the pods tests. - -set -eu - -readonly ScriptDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")") - -printUsage() { - NAME=$(basename "${0}") - cat << EOF -usage: ${NAME} [OPTIONS] - -This script runs some test to check the CocoaPods integration. - -OPTIONS: - - General: - - -h, --help - Show this message - --skip-static - Skip the static based pods tests. - --skip-framework - Skip the framework based pods tests. - --skip-ios - Skip the iOS pods tests. - --skip-osx - Skip the OS X pods tests. - -EOF -} - -TEST_MODES=( "static" "framework" ) -TEST_NAMES=( "iOSCocoaPodsTester" "OSXCocoaPodsTester" ) -while [[ $# != 0 ]]; do - case "${1}" in - -h | --help ) - printUsage - exit 0 - ;; - --skip-static ) - TEST_MODES=(${TEST_MODES[@]/static}) - ;; - --skip-framework ) - TEST_MODES=(${TEST_MODES[@]/framework}) - ;; - --skip-ios ) - TEST_NAMES=(${TEST_NAMES[@]/iOSCocoaPodsTester}) - ;; - --skip-osx ) - TEST_NAMES=(${TEST_NAMES[@]/OSXCocoaPodsTester}) - ;; - -*) - echo "ERROR: Unknown option: ${1}" 1>&2 - printUsage - exit 1 - ;; - *) - echo "ERROR: Unknown argument: ${1}" 1>&2 - printUsage - exit 1 - ;; - esac - shift -done - -# Sanity check. -if [[ "${#TEST_NAMES[@]}" == 0 ]] ; then - echo "ERROR: Need to run at least iOS or OS X tests." 1>&2 - exit 2 -fi -if [[ "${#TEST_MODES[@]}" == 0 ]] ; then - echo "ERROR: Need to run at least static or frameworks tests." 1>&2 - exit 2 -fi - -header() { - echo "" - echo "========================================================================" - echo " ${@}" - echo "========================================================================" - echo "" -} - -# Cleanup hook for do_test, assumes directory is correct. -cleanup() { - local TEST_NAME="$1" - - echo "Cleaning up..." - - # Generally don't let things fail, and eat common stdout, but let stderr show - # incase something does hiccup. - xcodebuild -workspace "${TEST_NAME}.xcworkspace" -scheme "${TEST_NAME}" clean > /dev/null || true - pod deintegrate > /dev/null || true - # Flush the cache so nothing is left behind. - pod cache clean --all || true - # Delete the files left after pod deintegrate. - rm -f Podfile.lock || true - rm -rf "${TEST_NAME}.xcworkspace" || true - git checkout -- "${TEST_NAME}.xcodeproj" || true - # Remove the Podfile that was put in place. - rm -f Podfile || true -} - -do_test() { - local TEST_NAME="$1" - local TEST_MODE="$2" - - header "${TEST_NAME}" - Mode: "${TEST_MODE}" - cd "${ScriptDir}/${TEST_NAME}" - - # Hook in cleanup for any failures. - trap "cleanup ${TEST_NAME}" EXIT - - # Ensure nothing is cached by pods to start with that could throw things off. - pod cache clean --all - - # Put the right Podfile in place. - cp -f "Podfile-${TEST_MODE}" "Podfile" - - xcodebuild_args=( "-workspace" "${TEST_NAME}.xcworkspace" "-scheme" "${TEST_NAME}" ) - - # For iOS, if the SDK is not provided it tries to use iphoneos, and the test - # fail on Travis since those machines don't have a Code Signing identity. - if [[ "${TEST_NAME}" == iOS* ]] ; then - # Apparently the destination flag is required to avoid "Unsupported architecture" - # errors. - xcodebuild_args+=( - -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO - -destination "platform=iOS Simulator,name=iPad 2,OS=9.3" - ) - fi - - # Do the work! - pod install --verbose - - xcodebuild "${xcodebuild_args[@]}" build - - # Clear the hook and manually run cleanup. - trap - EXIT - cleanup "${TEST_NAME}" -} - -# Run the tests. -for TEST_NAME in "${TEST_NAMES[@]}" ; do - for TEST_MODE in "${TEST_MODES[@]}" ; do - do_test "${TEST_NAME}" "${TEST_MODE}" - done -done |