@@ -17,7 +17,6 @@ log() { printf -- "** %s\n" "$*" >&2; }
1717error () { printf -- " ** ERROR: %s\n" " $* " >&2 ; }
1818fatal () { error " $@ " ; exit 1; }
1919
20- EMULATOR_NAME=" swiftemu"
2120ANDROID_PROFILE=" Nexus 10"
2221ANDROID_EMULATOR_LAUNCH_TIMEOUT=300
2322
@@ -33,6 +32,10 @@ while [[ $# -gt 0 ]]; do
3332 ANDROID_SDK_TRIPLE=" ${1#* =} "
3433 shift
3534 ;;
35+ --android-profile=* )
36+ ANDROID_PROFILE=" ${1#* =} "
37+ shift
38+ ;;
3639 -* )
3740 fatal " Unknown option: $1 "
3841 ;;
@@ -63,17 +66,17 @@ log "SWIFT_ANDROID_SDK_HOME=${SWIFT_ANDROID_SDK_HOME}"
6366log " Listing installed Android SDKs"
6467export PATH=" ${PATH} :$ANDROID_HOME /emulator:$ANDROID_HOME /tools:$ANDROID_HOME /build-tools/latest:$ANDROID_HOME /platform-tools:$ANDROID_HOME /cmdline-tools/latest/bin"
6568
66- sdkmanager --list_installed
67-
6869log " Updating Android SDK licenses"
70+ sdkmanager --list_installed
6971yes | sdkmanager --licenses > /dev/null || true
7072
7173log " Installing Android emulator"
7274sdkmanager --install " emulator" " platform-tools" " platforms;android-${ANDROID_API} " " ${EMULATOR_SPEC} "
7375
7476log " Creating Android emulator"
7577export ANDROID_AVD_HOME=${XDG_CONFIG_HOME:- $HOME } /.android/avd
76- avdmanager create avd --force -n " ${EMULATOR_NAME} " --package " ${EMULATOR_SPEC} " --device " ${ANDROID_PROFILE} "
78+ ANDROID_EMULATOR_NAME=" swiftemu"
79+ avdmanager create avd --force -n " ${ANDROID_EMULATOR_NAME} " --package " ${EMULATOR_SPEC} " --device " ${ANDROID_PROFILE} "
7780
7881log " Configuring Android emulators"
7982emulator -list-avds
@@ -83,7 +86,7 @@ emulator -accel-check
8386
8487log " Starting Android emulator"
8588# launch the emulator in the background
86- nohup emulator -no-metrics -partition-size 1024 -memory 4096 -wipe-data -no-window -no-snapshot -noaudio -no-boot-anim -avd " ${EMULATOR_NAME } " &
89+ nohup emulator -no-metrics -partition-size 1024 -memory 4096 -wipe-data -no-window -no-snapshot -noaudio -no-boot-anim -avd " ${ANDROID_EMULATOR_NAME } " &
8790
8891log " Waiting for Android emulator startup"
8992timeout ${ANDROID_EMULATOR_LAUNCH_TIMEOUT} adb wait-for-any-device
@@ -97,10 +100,11 @@ mkdir "${STAGING_DIR}"
97100
98101BUILD_DIR=.build/" ${ANDROID_SDK_TRIPLE} " /debug
99102
100- find " ${BUILD_DIR} " -name ' *.xctest' -o -name ' *.resources' -exec cp -a {} " ${STAGING_DIR} " \;
103+ find " ${BUILD_DIR} " -name ' *.xctest' -exec cp -av {} " ${STAGING_DIR} " \;
104+ find " ${BUILD_DIR} " -name ' *.resources' -exec cp -av {} " ${STAGING_DIR} " \;
101105
102106# also copy required libraries
103- cp -a " ${SWIFT_ANDROID_SDK_HOME} " /swift-android/swift-resources/usr/lib/swift-" ${ANDROID_EMULATOR_ARCH_TRIPLE} " /android/* .so " ${SWIFT_ANDROID_SDK_HOME} " /swift-android/ndk-sysroot/usr/lib/" ${ANDROID_EMULATOR_ARCH_TRIPLE} " -linux-android/libc++_shared.so " ${STAGING_DIR} "
107+ cp -av " ${SWIFT_ANDROID_SDK_HOME} " /swift-android/swift-resources/usr/lib/swift-" ${ANDROID_EMULATOR_ARCH_TRIPLE} " /android/* .so " ${SWIFT_ANDROID_SDK_HOME} " /swift-android/ndk-sysroot/usr/lib/" ${ANDROID_EMULATOR_ARCH_TRIPLE} " -linux-android/libc++_shared.so " ${STAGING_DIR} "
104108
105109# for the common case of tests referencing
106110# their own files as hardwired resource paths
@@ -113,8 +117,6 @@ log "Copy Swift test package to emulator"
113117ANDROID_TMP_FOLDER=" /data/local/tmp/${STAGING_DIR} "
114118adb push " ${STAGING_DIR} " " ${ANDROID_TMP_FOLDER} "
115119
116- popd
117-
118120TEST_CMD=" ./${TEST_PACKAGE} "
119121TEST_SHELL=" cd ${ANDROID_TMP_FOLDER} "
120122TEST_SHELL=" ${TEST_SHELL} && ${TEST_CMD} "
0 commit comments