Avoid killing the inferior process twice by passing a setCookie=False keyword

argument when issuing a "run" lldb command within the test case meant to
exercise the Python APIs, but is using the command interface due to certain
reason (such as target.LaunchProcess() does not reliably bring up the inferior).

llvm-svn: 112682
This commit is contained in:
Johnny Chen 2010-09-01 00:15:19 +00:00
parent f9e43cef54
commit 63dfb27647
3 changed files with 12 additions and 7 deletions

View File

@ -84,7 +84,7 @@ class TestArrayTypes(TestBase):
breakpoint = target.BreakpointCreateByLocation("main.c", 42)
self.assertTrue(breakpoint.IsValid(), VALID_BREAKPOINT)
self.runCmd("run", RUN_SUCCEEDED)
self.runCmd("run", RUN_SUCCEEDED, setCookie=False)
# This does not work, and results in the process stopped at dyld_start?
#process = target.LaunchProcess([''], [''], os.ctermid(), False)

View File

@ -86,7 +86,7 @@ class TestBitfields(TestBase):
breakpoint = target.BreakpointCreateByLocation("main.c", 42)
self.assertTrue(breakpoint.IsValid(), VALID_BREAKPOINT)
self.runCmd("run", RUN_SUCCEEDED)
self.runCmd("run", RUN_SUCCEEDED, setCookie=False)
# This does not work, and results in the process stopped at dyld_start?
#process = target.LaunchProcess([''], [''], os.ctermid(), False)
@ -131,6 +131,10 @@ class TestBitfields(TestBase):
int(four.GetValue(frame), 16) == 0x0f,
'bits.four has type uint32_t:4, is in scope, and == 0x0f')
# Now kill the process, and we are done.
rc = target.GetProcess().Kill()
self.assertTrue(rc.Success())
if __name__ == '__main__':
import atexit

View File

@ -323,7 +323,7 @@ class TestBase(unittest2.TestCase):
# Restore old working directory.
os.chdir(self.oldcwd)
def runCmd(self, cmd, msg=None, check=True, trace=False):
def runCmd(self, cmd, msg=None, check=True, trace=False, setCookie=True):
"""
Ask the command interpreter to handle the command and then check its
return status.
@ -334,10 +334,9 @@ class TestBase(unittest2.TestCase):
trace = (True if traceAlways else trace)
self.runStarted = (cmd.startswith("run") or
cmd.startswith("process launch"))
running = (cmd.startswith("run") or cmd.startswith("process launch"))
for i in range(self.maxLaunchCount if self.runStarted else 1):
for i in range(self.maxLaunchCount if running else 1):
self.ci.HandleCommand(cmd, self.res)
if trace:
@ -350,10 +349,12 @@ class TestBase(unittest2.TestCase):
if self.res.Succeeded():
break
else:
if self.runStarted:
if running:
# Process launch failed, wait some time before the next try.
time.sleep(self.timeWait)
self.runStarted = running and setCookie
if check:
self.assertTrue(self.res.Succeeded(),
msg if msg else CMD_MSG(cmd))