Skip to content

Commit f645af1

Browse files
authored
Abort vk worker when device becomes offline (#90)
1 parent 3141663 commit f645af1

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

python/src/main/python/drivers/worker_vk.py

+18-5
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ def adb(adbargs, serial=None):
6969
adbcmd += ' ' + adbargs
7070

7171
try:
72-
p = subprocess.run(adbcmd, shell=True, timeout=TIMEOUT_ADB_CMD)
72+
p = subprocess.run(adbcmd, shell=True, timeout=TIMEOUT_ADB_CMD, stdout=subprocess.PIPE, universal_newlines=True)
7373
except subprocess.TimeoutExpired as err:
7474
print('ERROR: adb command timed out: ' + err.cmd)
7575
return 1
7676
else:
77-
return p.returncode
77+
return p
7878

7979
################################################################################
8080

@@ -199,16 +199,16 @@ def getImageVulkanAndroid(args, frag, skipRender):
199199
# although it is being started.
200200
time.sleep(0.1)
201201

202-
retcode = adb('shell test -f /sdcard/graphicsfuzz/DONE')
202+
retcode = adb('shell test -f /sdcard/graphicsfuzz/DONE').returncode
203203
if retcode == 0:
204204
done = True
205205
break
206206

207-
retcode = adb('shell pidof ' + app + ' > /dev/null')
207+
retcode = adb('shell pidof ' + app + ' > /dev/null').returncode
208208
if retcode == 1:
209209

210210
# double check that no DONE file is present
211-
retcode = adb('shell test -f /sdcard/graphicsfuzz/DONE')
211+
retcode = adb('shell test -f /sdcard/graphicsfuzz/DONE').returncode
212212
if retcode == 0:
213213
done = True
214214
break
@@ -355,6 +355,15 @@ def get_service(server, args):
355355
except (TApplicationException, ConnectionRefusedError, ConnectionResetError) as exception:
356356
return None, None
357357

358+
################################################################################
359+
360+
def isDeviceOffline(serial):
361+
devices = adb('devices').stdout.splitlines()
362+
for d in devices:
363+
if serial in d and 'offline' in d:
364+
return True
365+
return False
366+
358367
################################################################################
359368
# Main
360369

@@ -405,6 +414,10 @@ def get_service(server, args):
405414
# Main loop
406415
while True:
407416

417+
if isDeviceOffline(os.environ['ANDROID_SERIAL']):
418+
print('#### ABORT: device is offline')
419+
exit(1)
420+
408421
if not(service):
409422
service, token = get_service(server, args)
410423

0 commit comments

Comments
 (0)