forked from OSchip/llvm-project
Add fuzz calls for SBModule and SBProcess.
llvm-svn: 134037
This commit is contained in:
parent
d1c487cd00
commit
a25bf6efb5
|
@ -223,10 +223,11 @@ SBModule::SetModule (const lldb::ModuleSP& module_sp)
|
|||
bool
|
||||
SBModule::ResolveFileAddress (lldb::addr_t vm_addr, SBAddress& addr)
|
||||
{
|
||||
if (m_opaque_sp)
|
||||
if (m_opaque_sp && addr.IsValid())
|
||||
return m_opaque_sp->ResolveFileAddress (vm_addr, *addr);
|
||||
|
||||
addr->Clear();
|
||||
if (addr.IsValid())
|
||||
addr->Clear();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -211,6 +211,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_module
|
||||
sb_module.fuzz_obj(obj)
|
||||
|
||||
@python_api_test
|
||||
def test_SBProcess(self):
|
||||
|
@ -218,6 +221,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_process
|
||||
sb_process.fuzz_obj(obj)
|
||||
|
||||
@python_api_test
|
||||
def test_SBStream(self):
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
"""
|
||||
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.GetFileSpec()
|
||||
obj.GetPlatformFileSpec()
|
||||
obj.SetPlatformFileSpec(lldb.SBFileSpec())
|
||||
obj.GetUUIDBytes()
|
||||
obj.GetUUIDString()
|
||||
obj.ResolveFileAddress(sys.maxint, lldb.SBAddress())
|
||||
obj.ResolveSymbolContextForAddress(lldb.SBAddress(), 0)
|
||||
obj.GetDescription(lldb.SBStream())
|
||||
obj.GetNumSymbols()
|
||||
obj.GetSymbolAtIndex(sys.maxint)
|
||||
obj.FindFunctions("my_func", 0xffffffff, True, lldb.SBSymbolContextList())
|
|
@ -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.GetTarget()
|
||||
obj.GetByteOrder()
|
||||
obj.PutSTDIN("my data", 7)
|
||||
obj.GetSTDOUT(6)
|
||||
obj.GetSTDERR(6)
|
||||
event = lldb.SBEvent()
|
||||
obj.ReportEventState(event, None)
|
||||
obj.AppendEventStateReport(event, lldb.SBCommandReturnObject())
|
||||
error = lldb.SBError()
|
||||
obj.RemoteAttachToProcessWithID(123, error)
|
||||
obj.RemoteLaunch(None, None, None, None, None, None, 0, False, error)
|
||||
obj.GetNumThreads()
|
||||
obj.GetThreadAtIndex(0)
|
||||
obj.GetThreadByID(0)
|
||||
obj.GetSelectedThread()
|
||||
obj.SetSelectedThread(lldb.SBThread())
|
||||
obj.SetSelectedThreadByID(0)
|
||||
obj.GetState()
|
||||
obj.GetExitStatus()
|
||||
obj.GetExitDescription()
|
||||
obj.GetProcessID()
|
||||
obj.GetAddressByteSize()
|
||||
obj.Destroy()
|
||||
obj.Continue()
|
||||
obj.Stop()
|
||||
obj.Kill()
|
||||
obj.Detach()
|
||||
obj.Signal(7)
|
||||
obj.ReadMemory(0x0000ffff, 10, error)
|
||||
obj.WriteMemory(0x0000ffff, "hi data", error)
|
||||
obj.GetBroadcaster()
|
||||
obj.GetDescription(lldb.SBStream())
|
||||
obj.LoadImage(lldb.SBFileSpec(), error)
|
||||
obj.UnloadImage(0)
|
Loading…
Reference in New Issue