Changeset 255780 in webkit


Ignore:
Timestamp:
Feb 4, 2020 5:46:59 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

REGRESSION: (r255611) [ Mac ] 3 lldb tests failing related to HashMap
https://bugs.webkit.org/show_bug.cgi?id=207204

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-04
Reviewed by Simon Fraser.

Remove support for HashSet and HashMap until we are able to do the equivalent of reinterpret_cast<unsigned*>(pointer)[-1]
in LLDB's python API.

  • lldb/lldb_webkit_unittest.py:

(TestSummaryProviders.serial_test_WTFHashMap_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFHashMap_of_vectors_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):

Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r255778 r255780  
     12020-02-04  Alex Christensen  <achristensen@webkit.org>
     2
     3        REGRESSION: (r255611) [ Mac ] 3 lldb tests failing related to HashMap
     4        https://bugs.webkit.org/show_bug.cgi?id=207204
     5
     6        Reviewed by Simon Fraser.
     7
     8        Remove support for HashSet and HashMap until we are able to do the equivalent of reinterpret_cast<unsigned*>(pointer)[-1]
     9        in LLDB's python API.
     10
     11        * lldb/lldb_webkit_unittest.py:
     12        (TestSummaryProviders.serial_test_WTFHashMap_tablesize_and_size):
     13        (TestSummaryProviders.serial_test_WTFHashMap_of_vectors_tablesize_and_size):
     14        (TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):
     15
    1162020-02-04  Lauro Moura  <lmoura@igalia.com>
    217
  • trunk/Tools/lldb/lldb_webkit.py

    r253572 r255780  
    6262    debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFAtomString_SummaryProvider WTF::AtomString')
    6363    debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFVector_SummaryProvider -x "^WTF::Vector<.+>$"')
    64     debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFHashTable_SummaryProvider -x "^WTF::HashTable<.+>$"')
    65     debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFHashMap_SummaryProvider -x "^WTF::HashMap<.+>$"')
    66     debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFHashSet_SummaryProvider -x "^WTF::HashSet<.+>$"')
    6764    debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFMediaTime_SummaryProvider WTF::MediaTime')
    6865    debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFOptionSet_SummaryProvider -x "^WTF::OptionSet<.+>$"')
     
    9390    # synthetic types (see <https://lldb.llvm.org/varformats.html>)
    9491    debugger.HandleCommand('type synthetic add -x "^WTF::Vector<.+>$" --python-class lldb_webkit.WTFVectorProvider')
    95     debugger.HandleCommand('type synthetic add -x "^WTF::HashTable<.+>$" --python-class lldb_webkit.WTFHashTableProvider')
    9692    debugger.HandleCommand('type synthetic add -x "^WTF::OptionSet<.+>$" --python-class lldb_webkit.WTFOptionSetProvider')
    9793    debugger.HandleCommand('type synthetic add -x "^WTF::CompactPointerTuple<.+,.+>$" --python-class lldb_webkit.WTFCompactPointerTupleProvider')
     
    134130    provider = WTFVectorProvider(valobj, dict)
    135131    return "{ size = %d, capacity = %d }" % (provider.size, provider.capacity)
    136 
    137 
    138 def WTFHashTable_SummaryProvider(valobj, dict):
    139     provider = WTFHashTableProvider(valobj, dict)
    140     return "{ tableSize = %d, keyCount = %d }" % (provider.tableSize(), provider.keyCount())
    141 
    142 
    143 def WTFHashMap_SummaryProvider(valobj, dict):
    144     provider = WTFHashMapProvider(valobj, dict)
    145     return "{ tableSize = %d, keyCount = %d }" % (provider.tableSize(), provider.keyCount())
    146 
    147 
    148 def WTFHashSet_SummaryProvider(valobj, dict):
    149     provider = WTFHashSetProvider(valobj, dict)
    150     return "{ tableSize = %d, keyCount = %d }" % (provider.tableSize(), provider.keyCount())
    151132
    152133
     
    977958
    978959
    979 class WTFHashMapProvider:
    980     def __init__(self, valobj, internal_dict):
    981         self.valobj = valobj
    982         impl_ptr = self.valobj.GetChildMemberWithName('m_impl')
    983         self._hash_table_provider = WTFHashTableProvider(impl_ptr, dict)
    984 
    985     def tableSize(self):
    986         return self._hash_table_provider.tableSize()
    987 
    988     def keyCount(self):
    989         return self._hash_table_provider.keyCount()
    990 
    991 
    992 class WTFHashSetProvider:
    993     def __init__(self, valobj, internal_dict):
    994         self.valobj = valobj
    995         impl_ptr = self.valobj.GetChildMemberWithName('m_impl')
    996         self._hash_table_provider = WTFHashTableProvider(impl_ptr, dict)
    997 
    998     def tableSize(self):
    999         return self._hash_table_provider.tableSize()
    1000 
    1001     def keyCount(self):
    1002         return self._hash_table_provider.keyCount()
    1003 
    1004 
    1005 class WTFHashTableProvider:
    1006     def __init__(self, valobj, internal_dict):
    1007         self.valobj = valobj
    1008         self.update()
    1009 
    1010     def tableSize(self):
    1011         return self.valobj.GetChildMemberWithName('m_tableSize').GetValueAsUnsigned(0)
    1012 
    1013     def keyCount(self):
    1014         return self.valobj.GetChildMemberWithName('m_keyCount').GetValueAsUnsigned(0)
    1015 
    1016     # Synthetic children provider methods.
    1017     def num_children(self):
    1018         return self.tableSize() + 5
    1019 
    1020     def get_child_index(self, name):
    1021         if name == "m_table":
    1022             return self.tableSize()
    1023         elif name == "m_tableSize":
    1024             return self.tableSize() + 1
    1025         elif name == "m_tableSizeMask":
    1026             return self.tableSize() + 2
    1027         elif name == "m_keyCount":
    1028             return self.tableSize() + 3
    1029         elif name == "m_deletedCount":
    1030             return self.tableSize() + 4
    1031         else:
    1032             return int(name.lstrip('[').rstrip(']'))
    1033 
    1034     def get_child_at_index(self, index):
    1035         if index == self.tableSize():
    1036             return self.valobj.GetChildMemberWithName('m_table')
    1037         elif index == self.tableSize() + 1:
    1038             return self.valobj.GetChildMemberWithName('m_tableSize')
    1039         elif index == self.tableSize() + 2:
    1040             return self.valobj.GetChildMemberWithName('m_tableSizeMask')
    1041         elif index == self.tableSize() + 3:
    1042             return self.valobj.GetChildMemberWithName('m_keyCount')
    1043         elif index == self.tableSize() + 4:
    1044             return self.valobj.GetChildMemberWithName('m_deletedCount')
    1045         elif index < self.tableSize():
    1046             table = self.valobj.GetChildMemberWithName('m_table')
    1047             return table.CreateChildAtOffset('[' + str(index) + ']', index * self.data_size, self.data_type)
    1048         else:
    1049             return None
    1050 
    1051     def update(self):
    1052         self.data_type = self.valobj.GetType().GetTemplateArgumentType(1)
    1053         self.data_size = self.data_type.GetByteSize()
    1054 
    1055     def has_children(self):
    1056         return True
    1057 
    1058 
    1059960class WTFMediaTimeProvider:
    1060961    def __init__(self, valobj, internal_dict):
  • trunk/Tools/lldb/lldb_webkit_unittest.py

    r251813 r255780  
    152152        self.assertEqual(summary, "{ size = 1, capacity = 16 }")
    153153
    154     # MARK: WTFHashMap_SummaryProvider and WTFHashSet_SummaryProvider test cases
    155 
    156     def serial_test_WTFHashMap_tablesize_and_size(self):
    157         variable = self._sbFrame.FindVariable('hashMapOfInts')
    158         summary = lldb_webkit.WTFHashMap_SummaryProvider(variable, {})
    159         self.assertEqual(summary, "{ tableSize = 8, keyCount = 2 }")
    160 
    161     def serial_test_WTFHashMap_of_vectors_tablesize_and_size(self):
    162         variable = self._sbFrame.FindVariable('hashMapOfVectors')
    163         summary = lldb_webkit.WTFHashMap_SummaryProvider(variable, {})
    164         self.assertEqual(summary, "{ tableSize = 8, keyCount = 1 }")
    165 
    166     def serial_test_WTFHashSet_tablesize_and_size(self):
    167         variable = self._sbFrame.FindVariable('hashSetOfInts')
    168         summary = lldb_webkit.WTFHashSet_SummaryProvider(variable, {})
    169         self.assertEqual(summary, "{ tableSize = 8, keyCount = 1 }")
    170 
    171154    # MARK: WTFOptionSet_SummaryProvider test cases
    172155
Note: See TracChangeset for help on using the changeset viewer.