build.sh: Create fresh AVD for large-tests

pull/699/head
Alinson S. Xavier 5 years ago
parent bd70746278
commit 3fb7fbac51

@ -19,6 +19,8 @@ cd "$(dirname "$0")"
ADB="${ANDROID_HOME}/platform-tools/adb" ADB="${ANDROID_HOME}/platform-tools/adb"
EMULATOR="${ANDROID_HOME}/tools/emulator" EMULATOR="${ANDROID_HOME}/tools/emulator"
AVDMANAGER="${ANDROID_HOME}/tools/bin/avdmanager"
AVDNAME="uhabitsTest"
GRADLE="./gradlew --stacktrace" GRADLE="./gradlew --stacktrace"
PACKAGE_NAME=org.isoron.uhabits PACKAGE_NAME=org.isoron.uhabits
OUTPUTS_DIR=uhabits-android/build/outputs OUTPUTS_DIR=uhabits-android/build/outputs
@ -220,6 +222,36 @@ remove_build_dir() {
rm -rfv uhabits-core/build rm -rfv uhabits-core/build
} }
remove_avd() {
log_info "Removing avd"
$AVDMANAGER delete avd --name $AVDNAME
}
create_avd() {
API=$1
log_info "Creating avd"
$AVDMANAGER create avd \
--name $AVDNAME \
--package "system-images;android-$API;default;x86_64" \
--device pixel_xl || fail
}
run_avd() {
log_info "Launching emulator"
$EMULATOR @$AVDNAME &
log_info "Waiting for device..."
$ADB wait-for-device
sleep 5
}
stop_avd() {
log_info "Stopping emulator..."
# https://stackoverflow.com/a/38652520
adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill; done
sleep 15
}
case "$1" in case "$1" in
build) build)
shift; parse_opts $* shift; parse_opts $*
@ -232,15 +264,23 @@ case "$1" in
medium-tests) medium-tests)
shift; parse_opts $* shift; parse_opts $*
for attempt in {1..3}; do for attempt in {1..3}; do
(run_tests medium) && exit 0 (run_tests medium) && exit 0
done done
exit 1 exit 1
;; ;;
large-tests) large-tests)
shift; parse_opts $* shift; parse_opts $*
run_tests large stop_avd
remove_avd
for api in 28; do
create_avd $api
run_avd
run_tests large
stop_avd
remove_avd
done
;; ;;
fetch-images) fetch-images)

Loading…
Cancel
Save