Run connectedAndroidTest against an emulator

Using 2.3.7 (10) armeabi for now. We can look into using more images in the
future.
This commit is contained in:
Daniel Martí 2015-09-01 21:43:46 -07:00
parent ab1ec07686
commit 582eebd436
2 changed files with 58 additions and 2 deletions

View File

@ -16,11 +16,24 @@ before_script:
- echo y | android -s update sdk --no-ui -a -t platform-tools,tools,build-tools-23.0.0,android-22,extra-android-m2repository - echo y | android -s update sdk --no-ui -a -t platform-tools,tools,build-tools-23.0.0,android-22,extra-android-m2repository
- export PATH="$ANDROID_HOME/platform-tools:$PATH" - export PATH="$ANDROID_HOME/platform-tools:$PATH"
- export PATH="$ANDROID_HOME/build-tools/23.0.0:$PATH" - export PATH="$ANDROID_HOME/build-tools/23.0.0:$PATH"
- echo " == Installing emulator system images"
- echo y | android -s update sdk --no-ui -a -t android-10
- echo " == Installing Gradle" - echo " == Installing Gradle"
- wget -q -O gradle.zip https://services.gradle.org/distributions/gradle-2.4-bin.zip - wget -q -O gradle.zip https://services.gradle.org/distributions/gradle-2.4-bin.zip
- unzip -q gradle.zip - unzip -q gradle.zip
- export PATH="$PWD/gradle-2.4/bin:$PATH" - export PATH="$PWD/gradle-2.4/bin:$PATH"
build: test:
script: script:
- gradle build - cd F-Droid
- echo " == Building via gradle"
- gradle clean assemble
- echo " == Setting up Android 2.3.7 emulator"
- echo no | android create avd --force -n fcl-test -t android-10 -b armeabi
- echo " == Starting Android 2.3.7 emulator"
- emulator -force-32bit -avd fcl-test -no-skin -no-audio -no-window &
- ./tools/wait-for-emulator
- echo " == Running Android tests"
- gradle connectedAndroidTest
- echo " == Stopping Android 2.3.7 emulator"
- kill $!

43
F-Droid/tools/wait-for-emulator Executable file
View File

@ -0,0 +1,43 @@
#!/bin/bash
sec=0
timeout=360
err() {
echo "$@"
exit 1
}
explain() {
if [[ "$1" =~ "not found" ]]; then
printf "device not found"
elif [[ "$1" =~ "offline" ]]; then
printf "device offline"
elif [[ "$1" =~ "running" ]]; then
printf "booting"
else
printf "unknown: $1"
fi
}
while true; do
if [[ $sec -ge $timeout ]]; then
err "Timeout ($timeout seconds) reached - Failed to start emulator"
fi
out=$(adb -e shell getprop init.svc.bootanim 2>&1)
if [[ "$out" =~ "command not found" ]]; then
err "$out"
fi
if [[ "$out" =~ "stopped" ]]; then
break
fi
exp=$(explain "$out")
let "r = sec % 5"
if [[ $r -eq 0 ]]; then
echo "Waiting for emulator to start: $exp"
fi
sleep 1
let "sec++"
done
echo "Emulator is ready"