Merge pull request #1583 from thomasvl/pods_integration_followup

Make the CocoaPods integration tests more robust
pull/1578/head
Thomas Van Lenten 9 years ago
commit 5c6518fd27
  1. 4
      objectivec/Tests/CocoaPods/OSXCocoaPodsTester/Podfile-framework
  2. 8
      objectivec/Tests/CocoaPods/OSXCocoaPodsTester/Podfile-static
  3. 4
      objectivec/Tests/CocoaPods/iOSCocoaPodsTester/Podfile-framework
  4. 8
      objectivec/Tests/CocoaPods/iOSCocoaPodsTester/Podfile-static
  5. 26
      objectivec/Tests/CocoaPods/run_tests.sh

@ -3,9 +3,7 @@ platform :osx, '10.9'
install! 'cocoapods', :deterministic_uuids => false
if ENV['USE_FRAMEWORKS'] == 'YES' then
use_frameworks!
end
use_frameworks!
target 'OSXCocoaPodsTester' do
pod 'Protobuf', :path => '../../../..'

@ -0,0 +1,8 @@
source 'https://github.com/CocoaPods/Specs.git'
platform :osx, '10.9'
install! 'cocoapods', :deterministic_uuids => false
target 'OSXCocoaPodsTester' do
pod 'Protobuf', :path => '../../../..'
end

@ -3,9 +3,7 @@ platform :ios, '8.0'
install! 'cocoapods', :deterministic_uuids => false
if ENV['USE_FRAMEWORKS'] == 'YES' then
use_frameworks!
end
use_frameworks!
target 'iOSCocoaPodsTester' do
pod 'Protobuf', :path => '../../../..'

@ -0,0 +1,8 @@
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
install! 'cocoapods', :deterministic_uuids => false
target 'iOSCocoaPodsTester' do
pod 'Protobuf', :path => '../../../..'
end

@ -31,7 +31,7 @@ OPTIONS:
EOF
}
TEST_MODES=( "yes" "no" )
TEST_MODES=( "static" "framework" )
TEST_NAMES=( "iOSCocoaPodsTester" "OSXCocoaPodsTester" )
while [[ $# != 0 ]]; do
case "${1}" in
@ -40,10 +40,10 @@ while [[ $# != 0 ]]; do
exit 0
;;
--skip-static )
TEST_MODES=(${TEST_MODES[@]/no})
TEST_MODES=(${TEST_MODES[@]/static})
;;
--skip-framework )
TEST_MODES=(${TEST_MODES[@]/yes})
TEST_MODES=(${TEST_MODES[@]/framework})
;;
--skip-ios )
TEST_NAMES=(${TEST_NAMES[@]/iOSCocoaPodsTester})
@ -93,24 +93,34 @@ cleanup() {
# incase something does hiccup.
xcodebuild -workspace "${TEST_NAME}.xcworkspace" -scheme "${TEST_NAME}" clean > /dev/null || true
pod deintegrate > /dev/null || true
# Delete the files left after pod deintegrate
# 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 USE_FRAMEWORKS_VALUE="$2"
local TEST_MODE="$2"
header "${TEST_NAME}" - USE_FRAMEWORKS: "${USE_FRAMEWORKS_VALUE}"
header "${TEST_NAME}" - Mode: "${TEST_MODE}"
cd "${ScriptDir}/${TEST_NAME}"
# Hook in cleanup for any failures.
trap "cleanup ${TEST_NAME}" EXIT
# Invoke pod and then xcodebuild, but catch the results so we can cleanup.
USE_FRAMEWORKS="${USE_FRAMEWORKS_VALUE}" pod install
# 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"
# Do the work!
pod install --verbose
xcodebuild -workspace "${TEST_NAME}.xcworkspace" -scheme "${TEST_NAME}" build
# Clear the hook and manually run cleanup.

Loading…
Cancel
Save