Add fuzz calls for SBTarget and SBThread.
llvm-svn: 134046
This commit is contained in:
@@ -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):
|
||||
|
||||
42
lldb/test/python_api/default-constructor/sb_target.py
Normal file
42
lldb/test/python_api/default-constructor/sb_target.py
Normal 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()
|
||||
35
lldb/test/python_api/default-constructor/sb_thread.py
Normal file
35
lldb/test/python_api/default-constructor/sb_thread.py
Normal 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()
|
||||
Reference in New Issue
Block a user