forked from OSchip/llvm-project
lldbutil: add a retry mechanism for the ios simulator
We've been seeing this failure on green dragon when the system is under high load. Unfortunately this is outside of LLDB's control. Differential Revision: https://reviews.llvm.org/D85542
This commit is contained in:
parent
d6c00edf2e
commit
968cba8e89
|
@ -21,6 +21,8 @@ import six
|
|||
import lldb
|
||||
from . import lldbtest_config
|
||||
|
||||
# How often failed simulator process launches are retried.
|
||||
SIMULATOR_RETRY = 3
|
||||
|
||||
# ===================================================
|
||||
# Utilities for locating/checking executable programs
|
||||
|
@ -818,9 +820,20 @@ def run_to_breakpoint_do_run(test, target, bkpt, launch_info = None,
|
|||
error = lldb.SBError()
|
||||
process = target.Launch(launch_info, error)
|
||||
|
||||
# Unfortunate workaround for the iPhone simulator.
|
||||
retry = SIMULATOR_RETRY
|
||||
while (retry and error.Fail() and error.GetCString() and
|
||||
"Unable to boot the Simulator" in error.GetCString()):
|
||||
retry -= 1
|
||||
print("** Simulator is unresponsive. Retrying %d more time(s)"%retry)
|
||||
import time
|
||||
time.sleep(60)
|
||||
error = lldb.SBError()
|
||||
process = target.Launch(launch_info, error)
|
||||
|
||||
test.assertTrue(process,
|
||||
"Could not create a valid process for %s: %s"%(target.GetExecutable().GetFilename(),
|
||||
error.GetCString()))
|
||||
"Could not create a valid process for %s: %s" %
|
||||
(target.GetExecutable().GetFilename(), error.GetCString()))
|
||||
test.assertFalse(error.Fail(),
|
||||
"Process launch failed: %s" % (error.GetCString()))
|
||||
|
||||
|
|
Loading…
Reference in New Issue