summaryrefslogtreecommitdiffstats
path: root/lldb/test/python_api
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-06-29 00:05:40 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-06-29 00:05:40 +0000
commit8ebed74e6e7aba431b07aa1f082f41948d9eafd7 (patch)
treed57e359d574c7ea379de35c2bd5b036807e964b1 /lldb/test/python_api
parentfc510bdd94fcb6ca885de80870c97bed3207b52a (diff)
downloadbcm5719-llvm-8ebed74e6e7aba431b07aa1f082f41948d9eafd7.tar.gz
bcm5719-llvm-8ebed74e6e7aba431b07aa1f082f41948d9eafd7.zip
Add fuzz calls for SBTarget and SBThread.
llvm-svn: 134046
Diffstat (limited to 'lldb/test/python_api')
-rw-r--r--lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py6
-rw-r--r--lldb/test/python_api/default-constructor/sb_target.py42
-rw-r--r--lldb/test/python_api/default-constructor/sb_thread.py35
3 files changed, 83 insertions, 0 deletions
diff --git a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index 9d068438250..f46ce835abf 100644
--- a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -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):
diff --git a/lldb/test/python_api/default-constructor/sb_target.py b/lldb/test/python_api/default-constructor/sb_target.py
new file mode 100644
index 00000000000..0f94d2fc998
--- /dev/null
+++ b/lldb/test/python_api/default-constructor/sb_target.py
@@ -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()
diff --git a/lldb/test/python_api/default-constructor/sb_thread.py b/lldb/test/python_api/default-constructor/sb_thread.py
new file mode 100644
index 00000000000..c4fb4838350
--- /dev/null
+++ b/lldb/test/python_api/default-constructor/sb_thread.py
@@ -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()
OpenPOWER on IntegriCloud