Title: [233306] trunk/Tools
Revision
233306
Author
[email protected]
Date
2018-06-28 08:37:04 -0700 (Thu, 28 Jun 2018)

Log Message

The lldb vector summary provider always shows zero capacity
https://bugs.webkit.org/show_bug.cgi?id=187132

Reviewed by Daniel Bates.

WTFVectorProvider in lldb_webkit.py was calling GetChildMemberWithName('m_capacity')
on the buffer instead of the valobj.

* lldb/lldbWebKitTester/main.cpp:
(testSummaryProviders):
* lldb/lldb_webkit.py:
(WTFVectorProvider.update):
* lldb/lldb_webkit_unittest.py:
(TestSummaryProviders.serial_test_WTFString_SummaryProvider_16bit_string):
(TestSummaryProviders):
(TestSummaryProviders.serial_test_WTFVectorProvider_empty_vector):
(TestSummaryProviders.serial_test_WTFVectorProvider_vector_size_and_capacity):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (233305 => 233306)


--- trunk/Tools/ChangeLog	2018-06-28 15:35:42 UTC (rev 233305)
+++ trunk/Tools/ChangeLog	2018-06-28 15:37:04 UTC (rev 233306)
@@ -1,3 +1,23 @@
+2018-06-28  Simon Fraser  <[email protected]>
+
+        The lldb vector summary provider always shows zero capacity
+        https://bugs.webkit.org/show_bug.cgi?id=187132
+
+        Reviewed by Daniel Bates.
+        
+        WTFVectorProvider in lldb_webkit.py was calling GetChildMemberWithName('m_capacity')
+        on the buffer instead of the valobj.
+
+        * lldb/lldbWebKitTester/main.cpp:
+        (testSummaryProviders):
+        * lldb/lldb_webkit.py:
+        (WTFVectorProvider.update):
+        * lldb/lldb_webkit_unittest.py:
+        (TestSummaryProviders.serial_test_WTFString_SummaryProvider_16bit_string):
+        (TestSummaryProviders):
+        (TestSummaryProviders.serial_test_WTFVectorProvider_empty_vector):
+        (TestSummaryProviders.serial_test_WTFVectorProvider_vector_size_and_capacity):
+
 2018-06-28  Adam Barth  <[email protected]>
 
         Switch OS(FUCHSIA) to using JSCOnly

Modified: trunk/Tools/lldb/lldbWebKitTester/main.cpp (233305 => 233306)


--- trunk/Tools/lldb/lldbWebKitTester/main.cpp	2018-06-28 15:35:42 UTC (rev 233305)
+++ trunk/Tools/lldb/lldbWebKitTester/main.cpp	2018-06-28 15:37:04 UTC (rev 233306)
@@ -54,6 +54,12 @@
     String a16BitString = utf16String(u"\u1680Cappuccino\u1680");
     StringImpl* a16BitStringImpl = a16BitString.impl();
 
+
+    Vector<int> anEmptyVector;
+    Vector<int> aVectorWithOneItem;
+    aVectorWithOneItem.reserveCapacity(16);
+    aVectorWithOneItem.append(1);
+
     breakForTestingSummaryProviders();
 }
 

Modified: trunk/Tools/lldb/lldb_webkit.py (233305 => 233306)


--- trunk/Tools/lldb/lldb_webkit.py	2018-06-28 15:35:42 UTC (rev 233305)
+++ trunk/Tools/lldb/lldb_webkit.py	2018-06-28 15:37:04 UTC (rev 233306)
@@ -383,7 +383,7 @@
     def update(self):
         self.buffer = self.valobj.GetChildMemberWithName('m_buffer')
         self.size = self.valobj.GetChildMemberWithName('m_size').GetValueAsUnsigned(0)
-        self.capacity = self.buffer.GetChildMemberWithName('m_capacity').GetValueAsUnsigned(0)
+        self.capacity = self.valobj.GetChildMemberWithName('m_capacity').GetValueAsUnsigned(0)
         self.data_type = self.buffer.GetType().GetPointeeType()
         self.data_size = self.data_type.GetByteSize()
 

Modified: trunk/Tools/lldb/lldb_webkit_unittest.py (233305 => 233306)


--- trunk/Tools/lldb/lldb_webkit_unittest.py	2018-06-28 15:35:42 UTC (rev 233305)
+++ trunk/Tools/lldb/lldb_webkit_unittest.py	2018-06-28 15:37:04 UTC (rev 233306)
@@ -33,6 +33,7 @@
 from webkitpy.common.system.systemhost import SystemHost
 from webkitpy.port.config import Config
 
+# Run just the tests in this file with ./Tools/Scripts/test-webkitpy lldb_webkit_unittest
 
 # We cache the lldb debug session state so that we don't create it again for each call to a serial_test_ method.
 # We store it in a global variable so that we can delete this cached state on exit(3).
@@ -137,3 +138,13 @@
     def serial_test_WTFString_SummaryProvider_16bit_string(self):
         summary = lldb_webkit.WTFString_SummaryProvider(self._sbFrame.FindVariable('a16BitString'), {})
         self.assertEqual(summary, u"{ length = 13, contents = '\\u1680Cappuccino\\u1680\\x00' }")
+
+    # MARK: WTFVector_SummaryProvider test cases
+
+    def serial_test_WTFVectorProvider_empty_vector(self):
+        summary = lldb_webkit.WTFVector_SummaryProvider(self._sbFrame.FindVariable('anEmptyVector'), {})
+        self.assertEqual(summary, "{ size = 0, capacity = 0 }")
+
+    def serial_test_WTFVectorProvider_vector_size_and_capacity(self):
+        summary = lldb_webkit.WTFVector_SummaryProvider(self._sbFrame.FindVariable('aVectorWithOneItem'), {})
+        self.assertEqual(summary, "{ size = 1, capacity = 16 }")
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to