summaryrefslogtreecommitdiffstats
path: root/lldb/test/python_api/default-constructor
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2011-06-28 22:32:15 +0000
committerJohnny Chen <johnny.chen@apple.com>2011-06-28 22:32:15 +0000
commita25bf6efb5662974b67863aaa280cc8b4a3ed160 (patch)
tree674e77cae2a49ea262b73094ea00efa5a7bc1f4b /lldb/test/python_api/default-constructor
parentd1c487cd002ed8ca885cc8f7aff54d9cc33b7fd0 (diff)
downloadbcm5719-llvm-a25bf6efb5662974b67863aaa280cc8b4a3ed160.tar.gz
bcm5719-llvm-a25bf6efb5662974b67863aaa280cc8b4a3ed160.zip
Add fuzz calls for SBModule and SBProcess.
llvm-svn: 134037
Diffstat (limited to 'lldb/test/python_api/default-constructor')
-rw-r--r--lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py6
-rw-r--r--lldb/test/python_api/default-constructor/sb_module.py19
-rw-r--r--lldb/test/python_api/default-constructor/sb_process.py42
3 files changed, 67 insertions, 0 deletions
diff --git a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index cca37f9e870..d9b866a39cb 100644
--- a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -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):
diff --git a/lldb/test/python_api/default-constructor/sb_module.py b/lldb/test/python_api/default-constructor/sb_module.py
new file mode 100644
index 00000000000..6b2820e3cf3
--- /dev/null
+++ b/lldb/test/python_api/default-constructor/sb_module.py
@@ -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())
diff --git a/lldb/test/python_api/default-constructor/sb_process.py b/lldb/test/python_api/default-constructor/sb_process.py
new file mode 100644
index 00000000000..d80d8feaf12
--- /dev/null
+++ b/lldb/test/python_api/default-constructor/sb_process.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.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)
OpenPOWER on IntegriCloud