Add rich comparison methods for the SBAddress object.

If two SBAddress's have the same module and file address, they are considered equal.

Add a test snippet 'sa1 == sa2' to exercise the rich comparison methods for SBAddress.

llvm-svn: 132807
This commit is contained in:
Johnny Chen 2011-06-09 22:04:56 +00:00
parent c90a32a4e6
commit e2b5cfd826
2 changed files with 8 additions and 2 deletions

View File

@ -88,7 +88,8 @@ d = { 'SBBreakpoint': ('GetNumLocations', 'GetLocationAtIndex'),
#
# This dictionary defines a mapping from classname to equality method name(s).
#
e = { 'SBBreakpoint': ['GetID'],
e = { 'SBAddress': ['GetFileAddress', 'GetModule'],
'SBBreakpoint': ['GetID'],
'SBFileSpec': ['GetFilename', 'GetDirectory'],
'SBModule': ['GetFileSpec', 'GetUUIDString']
}

View File

@ -102,18 +102,23 @@ class DisasmAPITestCase(TestBase):
sa1 = symbol.GetStartAddress()
#print "sa1:", sa1
print "sa1.GetFileAddress():", sa1.GetFileAddress()
#ea1 = symbol.GetEndAddress()
#print "ea1:", ea1
print "ea1.GetFileAddress():", sa1.GetFileAddress()
sa2 = function.GetStartAddress()
#print "sa2:", sa2
print "sa2.GetFileAddress():", sa2.GetFileAddress()
#ea2 = function.GetEndAddress()
#print "ea2:", ea2
self.assertTrue(sa1 and sa2 and sa1 == sa2,
"The two starting addresses should be the same")
from lldbutil import get_description
desc1 = get_description(sa1)
desc2 = get_description(sa2)
self.assertTrue(desc1 and desc2 and desc1 == desc2,
"The two starting addresses should be the same")
"SBAddress.GetDescription() API of sa1 and sa2 should return the same string")
if __name__ == '__main__':