diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-03-01 01:16:03 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-03-01 01:16:03 +0000 |
| commit | e5ec0623d15e99577e7d55c97d01fddfcc06effe (patch) | |
| tree | a03512ec2d3ca4cfe6dfc30796c1f3da4ca216f3 | |
| parent | 574b0f2f9ca83cccee54497ebb035a0b0e4a7ebf (diff) | |
| download | bcm5719-llvm-e5ec0623d15e99577e7d55c97d01fddfcc06effe.tar.gz bcm5719-llvm-e5ec0623d15e99577e7d55c97d01fddfcc06effe.zip | |
[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
| -rw-r--r-- | compiler-rt/test/asan/android_commands/android_common.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/compiler-rt/test/asan/android_commands/android_common.py b/compiler-rt/test/asan/android_commands/android_common.py index 9f8775f45ef..1a295b7817a 100644 --- a/compiler-rt/test/asan/android_commands/android_common.py +++ b/compiler-rt/test/asan/android_commands/android_common.py @@ -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) |

