[asan] Retry failed adb commands in android tests.
Add limited retries for push/pull adb commands in android tests. May help with the adb flakiness. llvm-svn: 262283
This commit is contained in:
parent
574b0f2f9c
commit
e5ec0623d1
|
|
@ -8,25 +8,30 @@ verbose = False
|
|||
if os.environ.get('ANDROID_RUN_VERBOSE') == '1':
|
||||
verbose = True
|
||||
|
||||
def adb(args):
|
||||
def adb(args, attempts = 1):
|
||||
if verbose:
|
||||
print args
|
||||
tmpname = tempfile.mktemp()
|
||||
out = open(tmpname, 'w')
|
||||
ret = subprocess.call([ADB] + args, stdout=out, stderr=subprocess.STDOUT)
|
||||
ret = 255
|
||||
while attempts > 0 and ret != 0:
|
||||
attempts -= 1
|
||||
ret = subprocess.call([ADB] + args, stdout=out, stderr=subprocess.STDOUT)
|
||||
if attempts != 0:
|
||||
ret = 5
|
||||
if ret != 0:
|
||||
print "adb command failed", args
|
||||
print tmpname
|
||||
out.close()
|
||||
out = open(tmpname, 'r')
|
||||
print out.read()
|
||||
print "adb command failed", args
|
||||
print tmpname
|
||||
out.close()
|
||||
out = open(tmpname, 'r')
|
||||
print out.read()
|
||||
out.close()
|
||||
os.unlink(tmpname)
|
||||
return ret
|
||||
|
||||
def pull_from_device(path):
|
||||
tmp = tempfile.mktemp()
|
||||
adb(['pull', path, tmp])
|
||||
adb(['pull', path, tmp], 5)
|
||||
text = open(tmp, 'r').read()
|
||||
os.unlink(tmp)
|
||||
return text
|
||||
|
|
@ -35,5 +40,5 @@ def push_to_device(path):
|
|||
# Workaround for https://code.google.com/p/android/issues/detail?id=65857
|
||||
dst_path = os.path.join(ANDROID_TMPDIR, os.path.basename(path))
|
||||
tmp_path = dst_path + '.push'
|
||||
adb(['push', path, tmp_path])
|
||||
adb(['shell', 'cp "%s" "%s" 2>&1' % (tmp_path, dst_path)])
|
||||
adb(['push', path, tmp_path], 5)
|
||||
adb(['shell', 'cp "%s" "%s" 2>&1' % (tmp_path, dst_path)], 5)
|
||||
|
|
|
|||
Loading…
Reference in New Issue