Title: [246326] trunk/Tools
Revision
246326
Author
[email protected]
Date
2019-06-11 11:44:53 -0700 (Tue, 11 Jun 2019)

Log Message

webkitpy: Fix device ASan reporting, add testing for report configurations
https://bugs.webkit.org/show_bug.cgi?id=198756

Reviewed by Aakash Jain.

ASan results were reporting an incorrect style. This indicates we need to be testing this upload
configuration thoroughly in webkitpy.

* Scripts/webkitpy/port/config.py:
(clear_cached_configuration): Clearing configurations should clear the ASan cache as well.
* Scripts/webkitpy/port/device_port.py:
(DevicePort.configuration_for_upload): Add ASan as style.
* Scripts/webkitpy/port/ios_device_unittest.py:
(IOSDeviceTest):
(IOSDeviceTest.test_default_upload_configuration):
* Scripts/webkitpy/port/ios_simulator_unittest.py:
(IOSSimulatorTest.test_default_upload_configuration):
* Scripts/webkitpy/port/mock_drt_unittest.py:
(MockDRTPortTest.test_asan_upload_configuration):
* Scripts/webkitpy/port/port_testcase.py:
(test_default_upload_configuration):
(test_debug_upload_configuration):
(test_asan_upload_configuration):
(test_guard_malloc_configuration):
* Scripts/webkitpy/port/watch_simulator_unittest.py:
(WatchSimulatorTest):
(WatchSimulatorTest.test_default_upload_configuration):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (246325 => 246326)


--- trunk/Tools/ChangeLog	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/ChangeLog	2019-06-11 18:44:53 UTC (rev 246326)
@@ -1,3 +1,33 @@
+2019-06-11  Jonathan Bedard  <[email protected]>
+
+        webkitpy: Fix device ASan reporting, add testing for report configurations
+        https://bugs.webkit.org/show_bug.cgi?id=198756
+
+        Reviewed by Aakash Jain.
+
+        ASan results were reporting an incorrect style. This indicates we need to be testing this upload
+        configuration thoroughly in webkitpy.
+
+        * Scripts/webkitpy/port/config.py:
+        (clear_cached_configuration): Clearing configurations should clear the ASan cache as well.
+        * Scripts/webkitpy/port/device_port.py:
+        (DevicePort.configuration_for_upload): Add ASan as style.
+        * Scripts/webkitpy/port/ios_device_unittest.py:
+        (IOSDeviceTest):
+        (IOSDeviceTest.test_default_upload_configuration):
+        * Scripts/webkitpy/port/ios_simulator_unittest.py:
+        (IOSSimulatorTest.test_default_upload_configuration):
+        * Scripts/webkitpy/port/mock_drt_unittest.py:
+        (MockDRTPortTest.test_asan_upload_configuration):
+        * Scripts/webkitpy/port/port_testcase.py:
+        (test_default_upload_configuration):
+        (test_debug_upload_configuration):
+        (test_asan_upload_configuration):
+        (test_guard_malloc_configuration):
+        * Scripts/webkitpy/port/watch_simulator_unittest.py:
+        (WatchSimulatorTest):
+        (WatchSimulatorTest.test_default_upload_configuration):
+
 2019-06-11  Michael Catanzaro  <[email protected]>
 
         tu-berlin university email web interface (Outlook Web App) goes directly to the light version instead of the normal web app

Modified: trunk/Tools/Scripts/webkitpy/port/config.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/config.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/config.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -53,6 +53,7 @@
     global _have_determined_configuration, _configuration
     _have_determined_configuration = False
     _configuration = "Release"
+    Config.asan.fget._results_cache = {}
 
 
 @memoized

Modified: trunk/Tools/Scripts/webkitpy/port/device_port.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/device_port.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/device_port.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -256,6 +256,13 @@
             if version_name:
                 break
 
+        if self.get_option('guard_malloc'):
+            style = 'guard-malloc'
+        elif self._config.asan:
+            style = 'asan'
+        else:
+            style = configuration.build_type
+
         return Upload.create_configuration(
             platform=device_type.software_variant.lower(),
             is_simulator=self.DEVICE_MANAGER == SimulatedDeviceManager,
@@ -262,7 +269,7 @@
             version=str(version),
             version_name=version_name,
             architecture=configuration.architecture,
-            style='guard-malloc' if self.get_option('guard_malloc') else configuration.build_type,
+            style=style,
             model=model,
             sdk=host.build_version if host else None,
         )

Modified: trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -25,6 +25,7 @@
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
 from webkitpy.common.version import Version
+from webkitpy.port.config import clear_cached_configuration
 from webkitpy.port.ios_device import IOSDevicePort
 from webkitpy.port import ios_testcase
 from webkitpy.port import port_testcase
@@ -159,3 +160,13 @@
 
     def test_max_child_processes(self):
         pass
+
+    def test_default_upload_configuration(self):
+        clear_cached_configuration()
+        port = self.make_port()
+        configuration = port.configuration_for_upload()
+        self.assertEqual(configuration['architecture'], port.architecture())
+        self.assertEqual(configuration['is_simulator'], False)
+        self.assertEqual(configuration['platform'], port.host.platform.os_name)
+        self.assertEqual(configuration['style'], 'release')
+        self.assertEqual(configuration['version_name'], 'iOS {}'.format(port.device_version()))

Modified: trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -25,6 +25,7 @@
 from webkitpy.port import port_testcase
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.common.version import Version
+from webkitpy.port.config import clear_cached_configuration
 from webkitpy.tool.mocktool import MockOptions
 from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
 from webkitpy.xcode.device_type import DeviceType
@@ -162,16 +163,12 @@
         port = self.make_port()
         self.assertEqual(port.max_child_processes(DeviceType.from_string('Apple Watch')), 0)
 
-    def test_configuration_for_upload(self):
+    def test_default_upload_configuration(self):
+        clear_cached_configuration()
         port = self.make_port()
-        self.assertEqual(
-            dict(
-                platform='ios',
-                is_simulator=True,
-                architecture='x86_64',
-                version='11',
-                version_name='iOS 11',
-                style='release',
-            ),
-            port.configuration_for_upload(),
-        )
+        configuration = port.configuration_for_upload()
+        self.assertEqual(configuration['architecture'], port.architecture())
+        self.assertEqual(configuration['is_simulator'], True)
+        self.assertEqual(configuration['platform'], 'ios')
+        self.assertEqual(configuration['style'], 'release')
+        self.assertEqual(configuration['version_name'], 'iOS {}'.format(port.device_version()))

Modified: trunk/Tools/Scripts/webkitpy/port/mock_drt_unittest.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/mock_drt_unittest.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/mock_drt_unittest.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -89,7 +89,10 @@
     def test_check_build(self):
         pass
 
+    def test_asan_upload_configuration(self):
+        pass
 
+
 class MockDRTTest(unittest.TestCase):
     def input_line(self, port, test_name, checksum=None):
         url = ""

Modified: trunk/Tools/Scripts/webkitpy/port/port_testcase.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/port_testcase.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/port_testcase.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -45,7 +45,7 @@
 from webkitpy.common.system.systemhost_mock import MockSystemHost
 from webkitpy.common.version_name_map import INTERNAL_TABLE
 from webkitpy.port.base import Port
-from webkitpy.port.config import apple_additions
+from webkitpy.port.config import apple_additions, clear_cached_configuration
 from webkitpy.port.image_diff import ImageDiffer
 from webkitpy.port.server_process_mock import MockServerProcess
 from webkitpy.layout_tests.servers import http_server_base
@@ -662,6 +662,33 @@
         self.assertEqual(port.baseline_search_path()[0], '/tmp/foo')
 
     def test_max_child_processes(self):
+
         port = self.make_port()
         self.assertEqual(port.max_child_processes(True), 0)
         self.assertEqual(port.max_child_processes(), float('inf'))
+
+    def test_default_upload_configuration(self):
+        clear_cached_configuration()
+        port = self.make_port()
+        configuration = port.configuration_for_upload()
+        self.assertEqual(configuration['architecture'], port.architecture())
+        self.assertEqual(configuration['is_simulator'], False)
+        self.assertEqual(configuration['platform'], port.host.platform.os_name)
+        self.assertEqual(configuration['style'], 'release')
+        self.assertEqual(configuration['version_name'], port.host.platform.os_version_name())
+
+    def test_debug_upload_configuration(self):
+        clear_cached_configuration()
+        port = self.make_port(options=MockOptions(configuration='Debug'))
+        self.assertEqual(port.configuration_for_upload()['style'], 'debug')
+
+    def test_asan_upload_configuration(self):
+        clear_cached_configuration()
+        port = self.make_port()
+        port.host.filesystem.write_text_file('/mock-build/ASan', 'YES')
+        self.assertEqual(port.configuration_for_upload()['style'], 'asan')
+
+    def test_guard_malloc_configuration(self):
+        clear_cached_configuration()
+        port = self.make_port(options=MockOptions(guard_malloc=True))
+        self.assertEqual(port.configuration_for_upload()['style'], 'guard-malloc')

Modified: trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py (246325 => 246326)


--- trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py	2019-06-11 18:17:24 UTC (rev 246325)
+++ trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py	2019-06-11 18:44:53 UTC (rev 246326)
@@ -23,6 +23,7 @@
 from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.common.version import Version
+from webkitpy.port.config import clear_cached_configuration
 from webkitpy.port.watch_simulator import WatchSimulatorPort
 from webkitpy.port import watch_testcase
 from webkitpy.tool.mocktool import MockOptions
@@ -79,3 +80,13 @@
     def test_max_child_processes(self):
         port = self.make_port()
         self.assertEqual(port.max_child_processes(DeviceType.from_string('iPhone')), 0)
+
+    def test_default_upload_configuration(self):
+        clear_cached_configuration()
+        port = self.make_port()
+        configuration = port.configuration_for_upload()
+        self.assertEqual(configuration['architecture'], port.architecture())
+        self.assertEqual(configuration['is_simulator'], True)
+        self.assertEqual(configuration['platform'], 'watchos')
+        self.assertEqual(configuration['style'], 'release')
+        self.assertEqual(configuration['version_name'], 'watchOS {}'.format(port.device_version()))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to