summaryrefslogtreecommitdiffstats
path: root/lldb/test/python_api/default-constructor
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/test/python_api/default-constructor')
-rw-r--r--lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py8
-rw-r--r--lldb/test/python_api/default-constructor/sb_breakpoint.py33
2 files changed, 39 insertions, 2 deletions
diff --git a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index b69e50da803..570f98d16c8 100644
--- a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -2,8 +2,9 @@
Test lldb Python API object's default constructor and make sure it is invalid
after initial construction.
-There are three exceptions to the above general rules, though; the API objects are
-SBCommadnReturnObject, SBStream, and SBSymbolContextList.
+There are three exceptions to the above general rules, though; API objects
+SBCommadnReturnObject, SBStream, and SBSymbolContextList, are all valid objects
+after default construction.
"""
import os, time
@@ -42,6 +43,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_breakpoint
+ sb_breakpoint.fuzz_obj(obj)
@python_api_test
def test_SBBreakpointLocation(self):
diff --git a/lldb/test/python_api/default-constructor/sb_breakpoint.py b/lldb/test/python_api/default-constructor/sb_breakpoint.py
new file mode 100644
index 00000000000..5ea5c62ad3e
--- /dev/null
+++ b/lldb/test/python_api/default-constructor/sb_breakpoint.py
@@ -0,0 +1,33 @@
+"""
+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.GetID()
+ obj.ClearAllBreakpointSites()
+ obj.FindLocationByAddress(sys.maxint)
+ obj.FindLocationIDByAddress(sys.maxint)
+ obj.FindLocationByID(0)
+ obj.GetLocationAtIndex(0)
+ obj.SetEnabled(True)
+ obj.IsEnabled()
+ obj.GetHitCount()
+ obj.SetIgnoreCount(1)
+ obj.GetIgnoreCount()
+ obj.SetCondition("i >= 10")
+ obj.GetCondition()
+ obj.SetThreadID(0)
+ obj.GetThreadID()
+ obj.SetThreadIndex(0)
+ obj.GetThreadIndex()
+ obj.SetThreadName("worker thread")
+ obj.GetThreadName()
+ obj.SetQueueName("my queue")
+ obj.GetQueueName()
+ obj.SetCallback(None, None)
+ obj.GetNumResolvedLocations()
+ obj.GetNumLocations()
+ obj.GetDescription(lldb.SBStream())
OpenPOWER on IntegriCloud