Changeset 246326 in webkit


Ignore:
Timestamp:
Jun 11, 2019 11:44:53 AM (5 years ago)
Author:
Jonathan Bedard
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):

Location:
trunk/Tools
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r246313 r246326  
     12019-06-11  Jonathan Bedard  <jbedard@apple.com>
     2
     3        webkitpy: Fix device ASan reporting, add testing for report configurations
     4        https://bugs.webkit.org/show_bug.cgi?id=198756
     5
     6        Reviewed by Aakash Jain.
     7
     8        ASan results were reporting an incorrect style. This indicates we need to be testing this upload
     9        configuration thoroughly in webkitpy.
     10
     11        * Scripts/webkitpy/port/config.py:
     12        (clear_cached_configuration): Clearing configurations should clear the ASan cache as well.
     13        * Scripts/webkitpy/port/device_port.py:
     14        (DevicePort.configuration_for_upload): Add ASan as style.
     15        * Scripts/webkitpy/port/ios_device_unittest.py:
     16        (IOSDeviceTest):
     17        (IOSDeviceTest.test_default_upload_configuration):
     18        * Scripts/webkitpy/port/ios_simulator_unittest.py:
     19        (IOSSimulatorTest.test_default_upload_configuration):
     20        * Scripts/webkitpy/port/mock_drt_unittest.py:
     21        (MockDRTPortTest.test_asan_upload_configuration):
     22        * Scripts/webkitpy/port/port_testcase.py:
     23        (test_default_upload_configuration):
     24        (test_debug_upload_configuration):
     25        (test_asan_upload_configuration):
     26        (test_guard_malloc_configuration):
     27        * Scripts/webkitpy/port/watch_simulator_unittest.py:
     28        (WatchSimulatorTest):
     29        (WatchSimulatorTest.test_default_upload_configuration):
     30
    1312019-06-11  Michael Catanzaro  <mcatanzaro@igalia.com>
    232
  • trunk/Tools/Scripts/webkitpy/port/config.py

    r246159 r246326  
    5454    _have_determined_configuration = False
    5555    _configuration = "Release"
     56    Config.asan.fget._results_cache = {}
    5657
    5758
  • trunk/Tools/Scripts/webkitpy/port/device_port.py

    r243732 r246326  
    257257                break
    258258
     259        if self.get_option('guard_malloc'):
     260            style = 'guard-malloc'
     261        elif self._config.asan:
     262            style = 'asan'
     263        else:
     264            style = configuration.build_type
     265
    259266        return Upload.create_configuration(
    260267            platform=device_type.software_variant.lower(),
     
    263270            version_name=version_name,
    264271            architecture=configuration.architecture,
    265             style='guard-malloc' if self.get_option('guard_malloc') else configuration.build_type,
     272            style=style,
    266273            model=model,
    267274            sdk=host.build_version if host else None,
  • trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py

    r245824 r246326  
    2626from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
    2727from webkitpy.common.version import Version
     28from webkitpy.port.config import clear_cached_configuration
    2829from webkitpy.port.ios_device import IOSDevicePort
    2930from webkitpy.port import ios_testcase
     
    160161    def test_max_child_processes(self):
    161162        pass
     163
     164    def test_default_upload_configuration(self):
     165        clear_cached_configuration()
     166        port = self.make_port()
     167        configuration = port.configuration_for_upload()
     168        self.assertEqual(configuration['architecture'], port.architecture())
     169        self.assertEqual(configuration['is_simulator'], False)
     170        self.assertEqual(configuration['platform'], port.host.platform.os_name)
     171        self.assertEqual(configuration['style'], 'release')
     172        self.assertEqual(configuration['version_name'], 'iOS {}'.format(port.device_version()))
  • trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py

    r243732 r246326  
    2626from webkitpy.common.system.outputcapture import OutputCapture
    2727from webkitpy.common.version import Version
     28from webkitpy.port.config import clear_cached_configuration
    2829from webkitpy.tool.mocktool import MockOptions
    2930from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
     
    163164        self.assertEqual(port.max_child_processes(DeviceType.from_string('Apple Watch')), 0)
    164165
    165     def test_configuration_for_upload(self):
     166    def test_default_upload_configuration(self):
     167        clear_cached_configuration()
    166168        port = self.make_port()
    167         self.assertEqual(
    168             dict(
    169                 platform='ios',
    170                 is_simulator=True,
    171                 architecture='x86_64',
    172                 version='11',
    173                 version_name='iOS 11',
    174                 style='release',
    175             ),
    176             port.configuration_for_upload(),
    177         )
     169        configuration = port.configuration_for_upload()
     170        self.assertEqual(configuration['architecture'], port.architecture())
     171        self.assertEqual(configuration['is_simulator'], True)
     172        self.assertEqual(configuration['platform'], 'ios')
     173        self.assertEqual(configuration['style'], 'release')
     174        self.assertEqual(configuration['version_name'], 'iOS {}'.format(port.device_version()))
  • trunk/Tools/Scripts/webkitpy/port/mock_drt_unittest.py

    r177028 r246326  
    9090        pass
    9191
     92    def test_asan_upload_configuration(self):
     93        pass
     94
    9295
    9396class MockDRTTest(unittest.TestCase):
  • trunk/Tools/Scripts/webkitpy/port/port_testcase.py

    r245733 r246326  
    4646from webkitpy.common.version_name_map import INTERNAL_TABLE
    4747from webkitpy.port.base import Port
    48 from webkitpy.port.config import apple_additions
     48from webkitpy.port.config import apple_additions, clear_cached_configuration
    4949from webkitpy.port.image_diff import ImageDiffer
    5050from webkitpy.port.server_process_mock import MockServerProcess
     
    663663
    664664    def test_max_child_processes(self):
     665
    665666        port = self.make_port()
    666667        self.assertEqual(port.max_child_processes(True), 0)
    667668        self.assertEqual(port.max_child_processes(), float('inf'))
     669
     670    def test_default_upload_configuration(self):
     671        clear_cached_configuration()
     672        port = self.make_port()
     673        configuration = port.configuration_for_upload()
     674        self.assertEqual(configuration['architecture'], port.architecture())
     675        self.assertEqual(configuration['is_simulator'], False)
     676        self.assertEqual(configuration['platform'], port.host.platform.os_name)
     677        self.assertEqual(configuration['style'], 'release')
     678        self.assertEqual(configuration['version_name'], port.host.platform.os_version_name())
     679
     680    def test_debug_upload_configuration(self):
     681        clear_cached_configuration()
     682        port = self.make_port(options=MockOptions(configuration='Debug'))
     683        self.assertEqual(port.configuration_for_upload()['style'], 'debug')
     684
     685    def test_asan_upload_configuration(self):
     686        clear_cached_configuration()
     687        port = self.make_port()
     688        port.host.filesystem.write_text_file('/mock-build/ASan', 'YES')
     689        self.assertEqual(port.configuration_for_upload()['style'], 'asan')
     690
     691    def test_guard_malloc_configuration(self):
     692        clear_cached_configuration()
     693        port = self.make_port(options=MockOptions(guard_malloc=True))
     694        self.assertEqual(port.configuration_for_upload()['style'], 'guard-malloc')
  • trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py

    r238944 r246326  
    2424from webkitpy.common.system.outputcapture import OutputCapture
    2525from webkitpy.common.version import Version
     26from webkitpy.port.config import clear_cached_configuration
    2627from webkitpy.port.watch_simulator import WatchSimulatorPort
    2728from webkitpy.port import watch_testcase
     
    8081        port = self.make_port()
    8182        self.assertEqual(port.max_child_processes(DeviceType.from_string('iPhone')), 0)
     83
     84    def test_default_upload_configuration(self):
     85        clear_cached_configuration()
     86        port = self.make_port()
     87        configuration = port.configuration_for_upload()
     88        self.assertEqual(configuration['architecture'], port.architecture())
     89        self.assertEqual(configuration['is_simulator'], True)
     90        self.assertEqual(configuration['platform'], 'watchos')
     91        self.assertEqual(configuration['style'], 'release')
     92        self.assertEqual(configuration['version_name'], 'watchOS {}'.format(port.device_version()))
Note: See TracChangeset for help on using the changeset viewer.