WebKit Bugzilla
Attachment 371851 Details for
Bug 198756
: webkitpy: Fix device ASan reporting, add testing for report configurations
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198756-20190611100534.patch (text/plain), 10.70 KB, created by
Jonathan Bedard
on 2019-06-11 10:05:35 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Jonathan Bedard
Created:
2019-06-11 10:05:35 PDT
Size:
10.70 KB
patch
obsolete
>Index: Tools/ChangeLog >=================================================================== >--- Tools/ChangeLog (revision 246321) >+++ Tools/ChangeLog (working copy) >@@ -1,3 +1,33 @@ >+2019-06-11 Jonathan Bedard <jbedard@apple.com> >+ >+ webkitpy: Fix device ASan reporting, add testing for report configurations >+ https://bugs.webkit.org/show_bug.cgi?id=198756 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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 <mcatanzaro@igalia.com> > > tu-berlin university email web interface (Outlook Web App) goes directly to the light version instead of the normal web app >Index: Tools/Scripts/webkitpy/port/config.py >=================================================================== >--- Tools/Scripts/webkitpy/port/config.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/config.py (working copy) >@@ -53,6 +53,7 @@ def clear_cached_configuration(): > global _have_determined_configuration, _configuration > _have_determined_configuration = False > _configuration = "Release" >+ Config.asan.fget._results_cache = {} > > > @memoized >Index: Tools/Scripts/webkitpy/port/device_port.py >=================================================================== >--- Tools/Scripts/webkitpy/port/device_port.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/device_port.py (working copy) >@@ -256,13 +256,20 @@ class DevicePort(DarwinPort): > 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, > 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, > ) >Index: Tools/Scripts/webkitpy/port/ios_device_unittest.py >=================================================================== >--- Tools/Scripts/webkitpy/port/ios_device_unittest.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/ios_device_unittest.py (working copy) >@@ -25,6 +25,7 @@ import time > 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 @@ class IOSDeviceTest(ios_testcase.IOSTest > > 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())) >Index: Tools/Scripts/webkitpy/port/ios_simulator_unittest.py >=================================================================== >--- Tools/Scripts/webkitpy/port/ios_simulator_unittest.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/ios_simulator_unittest.py (working copy) >@@ -25,6 +25,7 @@ from webkitpy.port import ios_testcase > 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 @@ class IOSSimulatorTest(ios_testcase.IOST > 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())) >Index: Tools/Scripts/webkitpy/port/mock_drt_unittest.py >=================================================================== >--- Tools/Scripts/webkitpy/port/mock_drt_unittest.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/mock_drt_unittest.py (working copy) >@@ -89,6 +89,9 @@ class MockDRTPortTest(port_testcase.Port > 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): >Index: Tools/Scripts/webkitpy/port/port_testcase.py >=================================================================== >--- Tools/Scripts/webkitpy/port/port_testcase.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/port_testcase.py (working copy) >@@ -45,7 +45,7 @@ from webkitpy.common.system.outputcaptur > 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 @@ MOCK output of child process > 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') >Index: Tools/Scripts/webkitpy/port/watch_simulator_unittest.py >=================================================================== >--- Tools/Scripts/webkitpy/port/watch_simulator_unittest.py (revision 246313) >+++ Tools/Scripts/webkitpy/port/watch_simulator_unittest.py (working copy) >@@ -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 @@ class WatchSimulatorTest(watch_testcase. > 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()))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198756
: 371851