261 lines
6.6 KiB
Python
261 lines
6.6 KiB
Python
"""
|
|
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; API objects
|
|
SBCommadnReturnObject, SBStream, and SBSymbolContextList, are all valid objects
|
|
after default construction.
|
|
"""
|
|
|
|
import os, time
|
|
import re
|
|
import unittest2
|
|
import lldb, lldbutil
|
|
from lldbtest import *
|
|
|
|
class APIDefaultConstructorTestCase(TestBase):
|
|
|
|
mydir = os.path.join("python_api", "default-constructor")
|
|
|
|
@python_api_test
|
|
def test_SBAddress(self):
|
|
obj = lldb.SBAddress()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
# Do fuzz testing on the invalid obj, it should not crash lldb.
|
|
import sb_address
|
|
sb_address.fuzz_obj(obj)
|
|
|
|
@python_api_test
|
|
def test_SBBlock(self):
|
|
obj = lldb.SBBlock()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
# Do fuzz testing on the invalid obj, it should not crash lldb.
|
|
import sb_block
|
|
sb_block.fuzz_obj(obj)
|
|
|
|
@python_api_test
|
|
def test_SBBreakpoint(self):
|
|
obj = lldb.SBBreakpoint()
|
|
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):
|
|
obj = lldb.SBBreakpointLocation()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
# Do fuzz testing on the invalid obj, it should not crash lldb.
|
|
import sb_breakpointlocation
|
|
sb_breakpointlocation.fuzz_obj(obj)
|
|
|
|
@python_api_test
|
|
def test_SBBroadcaster(self):
|
|
obj = lldb.SBBroadcaster()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
# Do fuzz testing on the invalid obj, it should not crash lldb.
|
|
import sb_broadcaster
|
|
sb_broadcaster.fuzz_obj(obj)
|
|
|
|
@python_api_test
|
|
def test_SBCommandReturnObject(self):
|
|
"""SBCommandReturnObject object is valid after default construction."""
|
|
obj = lldb.SBCommandReturnObject()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertTrue(obj)
|
|
|
|
@python_api_test
|
|
def test_SBCommunication(self):
|
|
obj = lldb.SBCommunication()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBCompileUnit(self):
|
|
obj = lldb.SBCompileUnit()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBDebugger(self):
|
|
obj = lldb.SBDebugger()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBError(self):
|
|
obj = lldb.SBError()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBEvent(self):
|
|
obj = lldb.SBEvent()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBFileSpec(self):
|
|
obj = lldb.SBFileSpec()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBFrame(self):
|
|
obj = lldb.SBFrame()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBFunction(self):
|
|
obj = lldb.SBFunction()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBInputReader(self):
|
|
obj = lldb.SBInputReader()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBInstruction(self):
|
|
obj = lldb.SBInstruction()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBInstructionList(self):
|
|
obj = lldb.SBInstructionList()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBLineEntry(self):
|
|
obj = lldb.SBLineEntry()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBListener(self):
|
|
obj = lldb.SBListener()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBModule(self):
|
|
obj = lldb.SBModule()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBProcess(self):
|
|
obj = lldb.SBProcess()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBStream(self):
|
|
"""SBStream object is valid after default construction."""
|
|
obj = lldb.SBStream()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertTrue(obj)
|
|
|
|
@python_api_test
|
|
def test_SBStringList(self):
|
|
obj = lldb.SBStringList()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBSymbol(self):
|
|
obj = lldb.SBSymbol()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBSymbolContext(self):
|
|
obj = lldb.SBSymbolContext()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBSymbolContextList(self):
|
|
"""SBSymbolContextList object is valid after default construction."""
|
|
obj = lldb.SBSymbolContextList()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertTrue(obj)
|
|
|
|
@python_api_test
|
|
def test_SBTarget(self):
|
|
obj = lldb.SBTarget()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBThread(self):
|
|
obj = lldb.SBThread()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBType(self):
|
|
obj = lldb.SBType()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBValue(self):
|
|
obj = lldb.SBValue()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
@python_api_test
|
|
def test_SBValueList(self):
|
|
obj = lldb.SBValueList()
|
|
if self.TraceOn():
|
|
print obj
|
|
self.assertFalse(obj)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import atexit
|
|
lldb.SBDebugger.Initialize()
|
|
atexit.register(lambda: lldb.SBDebugger.Terminate())
|
|
unittest2.main()
|