diff options
Diffstat (limited to 'lldb/test/python_api/default-constructor')
-rw-r--r-- | lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py | 8 | ||||
-rw-r--r-- | lldb/test/python_api/default-constructor/sb_breakpoint.py | 33 |
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()) |