Skip to content

Commit 6f87db6

Browse files
committed
Properly support AVD with minor SDK version
1 parent ccb264f commit 6f87db6

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

scripts/avd.sh

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,17 @@ case $(uname -m) in
3232
esac
3333

3434
cleanup() {
35-
pkill -INT -P $$
36-
wait
37-
trap - EXIT
3835
rm -f magisk_*.img
3936
"$avd" delete avd -n test
40-
exit 1
4137
}
4238

4339
test_error() {
40+
trap - EXIT
4441
print_error "! An error occurred"
42+
pkill -INT -P $$
43+
wait
4544
cleanup
45+
exit 1
4646
}
4747

4848
wait_for_boot() {
@@ -76,6 +76,8 @@ dump_vars() {
7676
eval val=\$$name
7777
echo $name=\"$val\"\;
7878
done
79+
# Always dump emu_args
80+
echo emu_args=\"$emu_args\"\;
7981
}
8082

8183
resolve_vars() {
@@ -138,8 +140,14 @@ dl_emu() {
138140

139141
setup_emu() {
140142
local avd_pkg=$1
143+
local ver=$2
141144
dl_emu $avd_pkg
142145
echo no | "$avd" create avd -f -n test -k $avd_pkg
146+
147+
# avdmanager is outdated, it might not set the proper target
148+
local ini=$ANDROID_AVD_HOME/test.ini
149+
sed "s:^target\s*=.*:target=android-$ver:g" $ini > $ini.new
150+
mv $ini.new $ini
143151
}
144152

145153
test_emu() {
@@ -169,16 +177,15 @@ test_emu() {
169177
}
170178

171179
test_main() {
172-
local avd_pkg ramdisk vars
173-
vars=$(resolve_vars "emu_args avd_pkg ramdisk" $1 $2)
174-
eval $vars
180+
local ver avd_pkg ramdisk
181+
eval $(resolve_vars "ver avd_pkg ramdisk" $1 $2)
175182

176183
# Specify an explicit port so that tests can run with other emulators running at the same time
177184
local emu_port=5682
178185
emu_args="$emu_args -port $emu_port"
179186
export ANDROID_SERIAL="emulator-$emu_port"
180187

181-
setup_emu "$avd_pkg"
188+
setup_emu "$avd_pkg" $ver
182189

183190
# Restart ADB daemon just in case
184191
adb kill-server
@@ -211,24 +218,21 @@ test_main() {
211218
test_emu release
212219
fi
213220

214-
# Cleanup
215-
rm -f magisk_*.img
216-
"$avd" delete avd -n test
221+
cleanup
217222
}
218223

219224
run_main() {
220-
local avd_pkg vars
221-
vars=$(resolve_vars "emu_args avd_pkg" $1 $2)
222-
eval $vars
223-
setup_emu "$avd_pkg"
225+
local ver avd_pkg
226+
eval $(resolve_vars "ver avd_pkg" $1 $2)
227+
setup_emu "$avd_pkg" $ver
224228
print_title "* Launching $avd_pkg"
225229
"$emu" @test $emu_args 2>/dev/null
230+
cleanup
226231
}
227232

228233
dl_main() {
229-
local avd_pkg vars
230-
vars=$(resolve_vars "avd_pkg" $1 $2)
231-
eval $vars
234+
local avd_pkg
235+
eval $(resolve_vars "avd_pkg" $1 $2)
232236
print_title "* Downloading $avd_pkg"
233237
dl_emu "$avd_pkg"
234238
}

0 commit comments

Comments
 (0)