Add fuzz calls for SBTarget and SBThread.

llvm-svn: 134046
This commit is contained in:
Johnny Chen
2011-06-29 00:05:40 +00:00
parent fc510bdd94
commit 8ebed74e6e
4 changed files with 87 additions and 3 deletions

View File

@@ -277,6 +277,9 @@ class APIDefaultConstructorTestCase(TestBase):
if self.TraceOn():
print obj
self.assertFalse(obj)
# Do fuzz testing on the invalid obj, it should not crash lldb.
import sb_target
sb_target.fuzz_obj(obj)
@python_api_test
def test_SBThread(self):
@@ -284,6 +287,9 @@ class APIDefaultConstructorTestCase(TestBase):
if self.TraceOn():
print obj
self.assertFalse(obj)
# Do fuzz testing on the invalid obj, it should not crash lldb.
import sb_thread
sb_thread.fuzz_obj(obj)
@python_api_test
def test_SBType(self):

View File

@@ -0,0 +1,42 @@
"""
Fuzz tests an object after the default construction to make sure it does not crash lldb.
"""
import sys
import lldb
def fuzz_obj(obj):
obj.GetProcess()
listener = lldb.SBListener()
error = lldb.SBError()
obj.Launch(listener, None, None, None, None, None, None, 0, True, error)
obj.LaunchSimple(None, None, None)
obj.AttachToProcessWithID(listener, 123, error)
obj.AttachToProcessWithName(listener, 'lldb', False, error)
obj.ConnectRemote(listener, "connect://to/here", None, error)
obj.GetExecutable()
obj.GetNumModules()
obj.GetModuleAtIndex(0xffffffff)
obj.GetDebugger()
filespec = lldb.SBFileSpec()
obj.FindModule(filespec)
contextlist = lldb.SBSymbolContextList()
obj.FindFunctions("the_func", 0xff, True, contextlist)
address = lldb.SBAddress()
obj.ResolveLoadAddress(0xffff, address)
obj.ResolveSymbolContextForAddress(address, 0)
obj.BreakpointCreateByLocation("filename", 20)
obj.BreakpointCreateByLocation(filespec, 20)
obj.BreakpointCreateByName("func", None)
obj.BreakpointCreateByRegex("func.", None)
obj.BreakpointCreateByAddress(0xf0f0)
obj.GetNumBreakpoints()
obj.GetBreakpointAtIndex(0)
obj.BreakpointDelete(0)
obj.FindBreakpointByID(0)
obj.EnableAllBreakpoints()
obj.DisableAllBreakpoints()
obj.DeleteAllBreakpoints()
obj.GetBroadcaster()
obj.GetDescription(lldb.SBStream(), lldb.eDescriptionLevelBrief)
obj.Clear()

View File

@@ -0,0 +1,35 @@
"""
Fuzz tests an object after the default construction to make sure it does not crash lldb.
"""
import sys
import lldb
def fuzz_obj(obj):
obj.GetStopReason()
obj.GetStopReasonDataCount()
obj.GetStopReasonDataAtIndex(100)
obj.GetStopDescription(256)
obj.GetThreadID()
obj.GetIndexID()
obj.GetName()
obj.GetQueueName()
obj.StepOver(lldb.eOnlyDuringStepping)
obj.StepInto(lldb.eOnlyDuringStepping)
obj.StepOut()
frame = lldb.SBFrame()
obj.StepOutOfFrame(frame)
obj.StepInstruction(True)
filespec = lldb.SBFileSpec()
obj.StepOverUntil(frame, filespec, 1234)
obj.RunToAddress(0xabcd)
obj.Suspend()
obj.Resume()
obj.IsSuspended()
obj.GetNumFrames()
obj.GetFrameAtIndex(200)
obj.GetSelectedFrame()
obj.SetSelectedFrame(999)
obj.GetProcess()
obj.GetDescription(lldb.SBStream())
obj.Clear()