⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 239875 in webkit


Ignore:
Timestamp:
Jan 11, 2019, 2:26:06 PM (8 years ago)
Author:
Jonathan Bedard
Message:

webkitpy: Incorporate device type into baseline search path
https://bugs.webkit.org/show_bug.cgi?id=193356
<rdar://problem/47215515>

Reviewed by Lucas Forschler.

We need a way to include device type in the baseline search path for iOS to support device specific test expectations.

  • Scripts/webkitpy/port/base.py:

(Port.default_baseline_search_path): Allow device type to be passed in.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.default_baseline_search_path): Ignore device type.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.default_baseline_search_path): Optionally allow device type to be incorporated into the baseline search path.
(IOSPort.test_expectations_file_position): Update index for the additional device-type specific baseline search path.

  • Scripts/webkitpy/port/ios_device_unittest.py:

(IOSDeviceTest):

  • Scripts/webkitpy/port/ios_simulator_unittest.py:

(IOSSimulatorTest):

  • Scripts/webkitpy/port/mac.py:

(MacPort.default_baseline_search_path): Ignore device type.

  • Scripts/webkitpy/port/watch.py:

(WatchPort.default_baseline_search_path): Ditto.

  • Scripts/webkitpy/port/win.py:

(WinPort.default_baseline_search_path): Ditto.
(WinCairoPort.default_baseline_search_path): Ditto.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.default_baseline_search_path): Ditto.

Location:
trunk/Tools
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r239874 r239875  
     12019-01-11  Jonathan Bedard  <jbedard@apple.com>
     2
     3        webkitpy: Incorporate device type into baseline search path
     4        https://bugs.webkit.org/show_bug.cgi?id=193356
     5        <rdar://problem/47215515>
     6
     7        Reviewed by Lucas Forschler.
     8
     9        We need a way to include device type in the baseline search path for iOS to support device specific test expectations.
     10
     11        * Scripts/webkitpy/port/base.py:
     12        (Port.default_baseline_search_path): Allow device type to be passed in.
     13        * Scripts/webkitpy/port/gtk.py:
     14        (GtkPort.default_baseline_search_path): Ignore device type.
     15        * Scripts/webkitpy/port/ios.py:
     16        (IOSPort.default_baseline_search_path): Optionally allow device type to be incorporated into the baseline search path.
     17        (IOSPort.test_expectations_file_position): Update index for the additional device-type specific baseline search path.
     18        * Scripts/webkitpy/port/ios_device_unittest.py:
     19        (IOSDeviceTest):
     20        * Scripts/webkitpy/port/ios_simulator_unittest.py:
     21        (IOSSimulatorTest):
     22        * Scripts/webkitpy/port/mac.py:
     23        (MacPort.default_baseline_search_path): Ignore device type.
     24        * Scripts/webkitpy/port/watch.py:
     25        (WatchPort.default_baseline_search_path): Ditto.
     26        * Scripts/webkitpy/port/win.py:
     27        (WinPort.default_baseline_search_path): Ditto.
     28        (WinCairoPort.default_baseline_search_path): Ditto.
     29        * Scripts/webkitpy/port/wpe.py:
     30        (WPEPort.default_baseline_search_path): Ditto.
     31
    1322019-01-11  Jonathan Bedard  <jbedard@apple.com>
    233
  • trunk/Tools/Scripts/webkitpy/port/base.py

    r239566 r239875  
    212212        return self.get_option('additional_platform_directory', []) + self._compare_baseline() + self.default_baseline_search_path()
    213213
    214     def default_baseline_search_path(self):
     214    def default_baseline_search_path(self, device_type=None):
    215215        """Return a list of absolute paths to directories to search under for
    216216        baselines. The directories are searched in order."""
  • trunk/Tools/Scripts/webkitpy/port/gtk.py

    r238749 r239875  
    211211        return search_paths
    212212
    213     def default_baseline_search_path(self):
     213    def default_baseline_search_path(self, **kwargs):
    214214        return map(self._webkit_baseline_path, self._search_paths())
    215215
  • trunk/Tools/Scripts/webkitpy/port/ios.py

    r238749 r239875  
    5454
    5555    @memoized
    56     def default_baseline_search_path(self):
     56    def default_baseline_search_path(self, device_type=None):
    5757        wk_string = 'wk1'
    5858        if self.get_option('webkit_test_runner'):
     
    7171                    temp_version.major -= 1
    7272
     73        runtime_type = 'simulator' if 'simulator' in self.SDK else 'device'
     74        hardware_family = device_type.hardware_family.lower() if device_type and device_type.hardware_family else None
     75        hardware_type = device_type.hardware_type.lower() if device_type and device_type.hardware_type else None
     76
     77        base_variants = []
     78        if hardware_family and hardware_type:
     79            base_variants.append('{}-{}-{}'.format(hardware_family, hardware_type, runtime_type))
     80        if hardware_family:
     81            base_variants.append('{}-{}'.format(hardware_family, runtime_type))
     82        base_variants.append('{}-{}'.format(IOSPort.port_name, runtime_type))
     83        if hardware_family and hardware_type:
     84            base_variants.append('{}-{}'.format(hardware_family, hardware_type))
     85        if hardware_family:
     86            base_variants.append(hardware_family)
     87        base_variants.append(IOSPort.port_name)
     88
    7389        expectations = []
    74         for version in versions_to_fallback:
    75             apple_name = None
     90        for variant in base_variants:
     91            for version in versions_to_fallback:
     92                apple_name = None
     93                if apple_additions():
     94                    apple_name = VersionNameMap.map(self.host.platform).to_name(version, platform=IOSPort.port_name, table=INTERNAL_TABLE)
     95
     96                if apple_name:
     97                    expectations.append(self._apple_baseline_path('{}-{}-{}'.format(variant, apple_name.lower().replace(' ', ''), wk_string)))
     98                expectations.append(self._webkit_baseline_path('{}-{}-{}'.format(variant, version.major, wk_string)))
     99                if apple_name:
     100                    expectations.append(self._apple_baseline_path('{}-{}'.format(variant, apple_name.lower().replace(' ', ''))))
     101                expectations.append(self._webkit_baseline_path('{}-{}'.format(variant, version.major)))
     102
    76103            if apple_additions():
    77                 apple_name = VersionNameMap.map(self.host.platform).to_name(version, platform=IOSPort.port_name, table=INTERNAL_TABLE)
    78 
    79             if apple_name:
    80                 expectations.append(self._apple_baseline_path('{}-{}-{}'.format(self.port_name, apple_name.lower().replace(' ', ''), wk_string)))
    81             expectations.append(self._webkit_baseline_path('{}-{}-{}'.format(self.port_name, version.major, wk_string)))
    82             if apple_name:
    83                 expectations.append(self._apple_baseline_path('{}-{}'.format(self.port_name, apple_name.lower().replace(' ', ''))))
    84             expectations.append(self._webkit_baseline_path('{}-{}'.format(self.port_name, version.major)))
    85 
    86         if apple_additions():
    87             expectations.append(self._apple_baseline_path('{}-{}'.format(self.port_name, wk_string)))
    88         expectations.append(self._webkit_baseline_path('{}-{}'.format(self.port_name, wk_string)))
    89         if apple_additions():
    90             expectations.append(self._apple_baseline_path(self.port_name))
    91         expectations.append(self._webkit_baseline_path(self.port_name))
    92 
    93         for version in versions_to_fallback:
    94             apple_name = None
     104                expectations.append(self._apple_baseline_path('{}-{}'.format(variant, wk_string)))
     105            expectations.append(self._webkit_baseline_path('{}-{}'.format(variant, wk_string)))
    95106            if apple_additions():
    96                 apple_name = VersionNameMap.map(self.host.platform).to_name(version, platform=IOSPort.port_name, table=INTERNAL_TABLE)
    97             if apple_name:
    98                 expectations.append(self._apple_baseline_path('{}-{}'.format(IOSPort.port_name, apple_name.lower().replace(' ', ''))))
    99             expectations.append(self._webkit_baseline_path('{}-{}'.format(IOSPort.port_name, version.major)))
    100 
    101         if apple_additions():
    102             expectations.append(self._apple_baseline_path('{}-{}'.format(IOSPort.port_name, wk_string)))
    103         expectations.append(self._webkit_baseline_path('{}-{}'.format(IOSPort.port_name, wk_string)))
    104         if apple_additions():
    105             expectations.append(self._apple_baseline_path(IOSPort.port_name))
    106         expectations.append(self._webkit_baseline_path(IOSPort.port_name))
     107                expectations.append(self._apple_baseline_path(variant))
     108            expectations.append(self._webkit_baseline_path(variant))
    107109
    108110        if self.get_option('webkit_test_runner'):
     
    112114
    113115    def test_expectations_file_position(self):
    114         return 4
     116        return 5
  • trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py

    r238944 r239875  
    2929from webkitpy.port import ios_testcase
    3030from webkitpy.port import port_testcase
     31from webkitpy.xcode.device_type import DeviceType
    3132
    3233
     
    8990        with port_testcase.bind_mock_apple_additions():
    9091            search_path = self.make_port().default_baseline_search_path()
    91         self.assertEqual(search_path[0], '/additional_testing_path/ios-device-add-ios11-wk1')
    92         self.assertEqual(search_path[1], '/mock-checkout/LayoutTests/platform/ios-device-11-wk1')
    93         self.assertEqual(search_path[2], '/additional_testing_path/ios-device-add-ios11')
    94         self.assertEqual(search_path[3], '/mock-checkout/LayoutTests/platform/ios-device-11')
    95         self.assertEqual(search_path[4], '/additional_testing_path/ios-device-wk1')
    96         self.assertEqual(search_path[5], '/mock-checkout/LayoutTests/platform/ios-device-wk1')
    97         self.assertEqual(search_path[6], '/additional_testing_path/ios-device')
    98         self.assertEqual(search_path[7], '/mock-checkout/LayoutTests/platform/ios-device')
    99         self.assertEqual(search_path[8], '/additional_testing_path/ios-add-ios11')
    100         self.assertEqual(search_path[9], '/mock-checkout/LayoutTests/platform/ios-11')
    101         self.assertEqual(search_path[10], '/additional_testing_path/ios-wk1')
    102         self.assertEqual(search_path[11], '/mock-checkout/LayoutTests/platform/ios-wk1')
     92
     93        self.assertEqual(search_path, [
     94            '/additional_testing_path/ios-device-add-ios11-wk1',
     95            '/mock-checkout/LayoutTests/platform/ios-device-11-wk1',
     96            '/additional_testing_path/ios-device-add-ios11',
     97            '/mock-checkout/LayoutTests/platform/ios-device-11',
     98            '/additional_testing_path/ios-device-wk1',
     99            '/mock-checkout/LayoutTests/platform/ios-device-wk1',
     100            '/additional_testing_path/ios-device',
     101            '/mock-checkout/LayoutTests/platform/ios-device',
     102            '/additional_testing_path/ios-add-ios11-wk1',
     103            '/mock-checkout/LayoutTests/platform/ios-11-wk1',
     104            '/additional_testing_path/ios-add-ios11',
     105            '/mock-checkout/LayoutTests/platform/ios-11',
     106            '/additional_testing_path/ios-wk1',
     107            '/mock-checkout/LayoutTests/platform/ios-wk1',
     108            '/additional_testing_path/ios',
     109            '/mock-checkout/LayoutTests/platform/ios',
     110        ])
    103111
    104112    def test_layout_test_searchpath_without_apple_additions(self):
    105113        search_path = self.make_port(port_name='ios-device-wk2', os_version=Version(12)).default_baseline_search_path()
    106114
    107         self.assertEqual(search_path[0], '/mock-checkout/LayoutTests/platform/ios-device-12-wk2')
    108         self.assertEqual(search_path[1], '/mock-checkout/LayoutTests/platform/ios-device-12')
    109         self.assertEqual(search_path[2], '/mock-checkout/LayoutTests/platform/ios-device-wk2')
    110         self.assertEqual(search_path[3], '/mock-checkout/LayoutTests/platform/ios-device')
    111         self.assertEqual(search_path[4], '/mock-checkout/LayoutTests/platform/ios-12')
    112         self.assertEqual(search_path[5], '/mock-checkout/LayoutTests/platform/ios-wk2')
    113         self.assertEqual(search_path[6], '/mock-checkout/LayoutTests/platform/ios')
    114         self.assertEqual(search_path[7], '/mock-checkout/LayoutTests/platform/wk2')
     115        self.assertEqual(search_path, [
     116            '/mock-checkout/LayoutTests/platform/ios-device-12-wk2',
     117            '/mock-checkout/LayoutTests/platform/ios-device-12',
     118            '/mock-checkout/LayoutTests/platform/ios-device-wk2',
     119            '/mock-checkout/LayoutTests/platform/ios-device',
     120            '/mock-checkout/LayoutTests/platform/ios-12-wk2',
     121            '/mock-checkout/LayoutTests/platform/ios-12',
     122            '/mock-checkout/LayoutTests/platform/ios-wk2',
     123            '/mock-checkout/LayoutTests/platform/ios',
     124            '/mock-checkout/LayoutTests/platform/wk2',
     125        ])
     126
     127    def test_layout_searchpath_wih_device_type(self):
     128        search_path = self.make_port(port_name='ios-device-wk2', os_version=Version(12)).default_baseline_search_path(DeviceType.from_string('iPhone SE'))
     129
     130        self.assertEqual(search_path, [
     131            '/mock-checkout/LayoutTests/platform/iphone-se-device-12-wk2',
     132            '/mock-checkout/LayoutTests/platform/iphone-se-device-12',
     133            '/mock-checkout/LayoutTests/platform/iphone-se-device-wk2',
     134            '/mock-checkout/LayoutTests/platform/iphone-se-device',
     135            '/mock-checkout/LayoutTests/platform/iphone-device-12-wk2',
     136            '/mock-checkout/LayoutTests/platform/iphone-device-12',
     137            '/mock-checkout/LayoutTests/platform/iphone-device-wk2',
     138            '/mock-checkout/LayoutTests/platform/iphone-device',
     139            '/mock-checkout/LayoutTests/platform/ios-device-12-wk2',
     140            '/mock-checkout/LayoutTests/platform/ios-device-12',
     141            '/mock-checkout/LayoutTests/platform/ios-device-wk2',
     142            '/mock-checkout/LayoutTests/platform/ios-device',
     143            '/mock-checkout/LayoutTests/platform/iphone-se-12-wk2',
     144            '/mock-checkout/LayoutTests/platform/iphone-se-12',
     145            '/mock-checkout/LayoutTests/platform/iphone-se-wk2',
     146            '/mock-checkout/LayoutTests/platform/iphone-se',
     147            '/mock-checkout/LayoutTests/platform/iphone-12-wk2',
     148            '/mock-checkout/LayoutTests/platform/iphone-12',
     149            '/mock-checkout/LayoutTests/platform/iphone-wk2',
     150            '/mock-checkout/LayoutTests/platform/iphone',
     151            '/mock-checkout/LayoutTests/platform/ios-12-wk2',
     152            '/mock-checkout/LayoutTests/platform/ios-12',
     153            '/mock-checkout/LayoutTests/platform/ios-wk2',
     154            '/mock-checkout/LayoutTests/platform/ios',
     155            '/mock-checkout/LayoutTests/platform/wk2',
     156        ])
    115157
    116158    def test_max_child_processes(self):
  • trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py

    r238944 r239875  
    9393        with port_testcase.bind_mock_apple_additions():
    9494            search_path = self.make_port().default_baseline_search_path()
    95         self.assertEqual(search_path[0], '/additional_testing_path/ios-simulator-add-ios11-wk1')
    96         self.assertEqual(search_path[1], '/mock-checkout/LayoutTests/platform/ios-simulator-11-wk1')
    97         self.assertEqual(search_path[2], '/additional_testing_path/ios-simulator-add-ios11')
    98         self.assertEqual(search_path[3], '/mock-checkout/LayoutTests/platform/ios-simulator-11')
    99         self.assertEqual(search_path[4], '/additional_testing_path/ios-simulator-wk1')
    100         self.assertEqual(search_path[5], '/mock-checkout/LayoutTests/platform/ios-simulator-wk1')
    101         self.assertEqual(search_path[6], '/additional_testing_path/ios-simulator')
    102         self.assertEqual(search_path[7], '/mock-checkout/LayoutTests/platform/ios-simulator')
    103         self.assertEqual(search_path[8], '/additional_testing_path/ios-add-ios11')
    104         self.assertEqual(search_path[9], '/mock-checkout/LayoutTests/platform/ios-11')
    105         self.assertEqual(search_path[10], '/additional_testing_path/ios-wk1')
    106         self.assertEqual(search_path[11], '/mock-checkout/LayoutTests/platform/ios-wk1')
     95
     96        self.assertEqual(search_path, [
     97            '/additional_testing_path/ios-simulator-add-ios11-wk1',
     98            '/mock-checkout/LayoutTests/platform/ios-simulator-11-wk1',
     99            '/additional_testing_path/ios-simulator-add-ios11',
     100            '/mock-checkout/LayoutTests/platform/ios-simulator-11',
     101            '/additional_testing_path/ios-simulator-wk1',
     102            '/mock-checkout/LayoutTests/platform/ios-simulator-wk1',
     103            '/additional_testing_path/ios-simulator',
     104            '/mock-checkout/LayoutTests/platform/ios-simulator',
     105            '/additional_testing_path/ios-add-ios11-wk1',
     106            '/mock-checkout/LayoutTests/platform/ios-11-wk1',
     107            '/additional_testing_path/ios-add-ios11',
     108            '/mock-checkout/LayoutTests/platform/ios-11',
     109            '/additional_testing_path/ios-wk1',
     110            '/mock-checkout/LayoutTests/platform/ios-wk1',
     111            '/additional_testing_path/ios',
     112            '/mock-checkout/LayoutTests/platform/ios',
     113        ])
    107114
    108115    def test_layout_test_searchpath_without_apple_additions(self):
    109116        search_path = self.make_port(port_name='ios-simulator-wk2', os_version=Version(12)).default_baseline_search_path()
    110117
    111         self.assertEqual(search_path[0], '/mock-checkout/LayoutTests/platform/ios-simulator-12-wk2')
    112         self.assertEqual(search_path[1], '/mock-checkout/LayoutTests/platform/ios-simulator-12')
    113         self.assertEqual(search_path[2], '/mock-checkout/LayoutTests/platform/ios-simulator-wk2')
    114         self.assertEqual(search_path[3], '/mock-checkout/LayoutTests/platform/ios-simulator')
    115         self.assertEqual(search_path[4], '/mock-checkout/LayoutTests/platform/ios-12')
    116         self.assertEqual(search_path[5], '/mock-checkout/LayoutTests/platform/ios-wk2')
    117         self.assertEqual(search_path[6], '/mock-checkout/LayoutTests/platform/ios')
    118         self.assertEqual(search_path[7], '/mock-checkout/LayoutTests/platform/wk2')
     118        self.assertEqual(search_path, [
     119            '/mock-checkout/LayoutTests/platform/ios-simulator-12-wk2',
     120            '/mock-checkout/LayoutTests/platform/ios-simulator-12',
     121            '/mock-checkout/LayoutTests/platform/ios-simulator-wk2',
     122            '/mock-checkout/LayoutTests/platform/ios-simulator',
     123            '/mock-checkout/LayoutTests/platform/ios-12-wk2',
     124            '/mock-checkout/LayoutTests/platform/ios-12',
     125            '/mock-checkout/LayoutTests/platform/ios-wk2',
     126            '/mock-checkout/LayoutTests/platform/ios',
     127            '/mock-checkout/LayoutTests/platform/wk2',
     128        ])
     129
     130    def test_layout_searchpath_wih_device_type(self):
     131        search_path = self.make_port(port_name='ios-simulator-wk2', os_version=Version(12)).default_baseline_search_path(DeviceType.from_string('iPhone SE'))
     132
     133        self.assertEqual(search_path, [
     134            '/mock-checkout/LayoutTests/platform/iphone-se-simulator-12-wk2',
     135            '/mock-checkout/LayoutTests/platform/iphone-se-simulator-12',
     136            '/mock-checkout/LayoutTests/platform/iphone-se-simulator-wk2',
     137            '/mock-checkout/LayoutTests/platform/iphone-se-simulator',
     138            '/mock-checkout/LayoutTests/platform/iphone-simulator-12-wk2',
     139            '/mock-checkout/LayoutTests/platform/iphone-simulator-12',
     140            '/mock-checkout/LayoutTests/platform/iphone-simulator-wk2',
     141            '/mock-checkout/LayoutTests/platform/iphone-simulator',
     142            '/mock-checkout/LayoutTests/platform/ios-simulator-12-wk2',
     143            '/mock-checkout/LayoutTests/platform/ios-simulator-12',
     144            '/mock-checkout/LayoutTests/platform/ios-simulator-wk2',
     145            '/mock-checkout/LayoutTests/platform/ios-simulator',
     146            '/mock-checkout/LayoutTests/platform/iphone-se-12-wk2',
     147            '/mock-checkout/LayoutTests/platform/iphone-se-12',
     148            '/mock-checkout/LayoutTests/platform/iphone-se-wk2',
     149            '/mock-checkout/LayoutTests/platform/iphone-se',
     150            '/mock-checkout/LayoutTests/platform/iphone-12-wk2',
     151            '/mock-checkout/LayoutTests/platform/iphone-12',
     152            '/mock-checkout/LayoutTests/platform/iphone-wk2',
     153            '/mock-checkout/LayoutTests/platform/iphone',
     154            '/mock-checkout/LayoutTests/platform/ios-12-wk2',
     155            '/mock-checkout/LayoutTests/platform/ios-12',
     156            '/mock-checkout/LayoutTests/platform/ios-wk2',
     157            '/mock-checkout/LayoutTests/platform/ios',
     158            '/mock-checkout/LayoutTests/platform/wk2',
     159        ])
    119160
    120161    def test_max_child_processes(self):
  • trunk/Tools/Scripts/webkitpy/port/mac.py

    r238903 r239875  
    7171
    7272    @memoized
    73     def default_baseline_search_path(self):
     73    def default_baseline_search_path(self, **kwargs):
    7474        versions_to_fallback = []
    7575        version_name_map = VersionNameMap.map(self.host.platform)
  • trunk/Tools/Scripts/webkitpy/port/watch.py

    r238749 r239875  
    6060
    6161    @memoized
    62     def default_baseline_search_path(self):
     62    def default_baseline_search_path(self, **kwargs):
    6363        versions_to_fallback = []
    6464        if self.device_version() == self.CURRENT_VERSION:
  • trunk/Tools/Scripts/webkitpy/port/win.py

    r238749 r239875  
    111111        return expected_text != actual_text
    112112
    113     def default_baseline_search_path(self):
     113    def default_baseline_search_path(self, **kwargs):
    114114        version_name_map = VersionNameMap.map(self.host.platform)
    115115        if self._os_version < self.VERSION_MIN or self._os_version > self.VERSION_MAX:
     
    481481    DEFAULT_ARCHITECTURE = 'x86_64'
    482482
    483     def default_baseline_search_path(self):
     483    def default_baseline_search_path(self, **kwargs):
    484484        version_name_map = VersionNameMap.map(self.host.platform)
    485485        if self._os_version < self.VERSION_MIN or self._os_version > self.VERSION_MAX:
  • trunk/Tools/Scripts/webkitpy/port/wpe.py

    r237741 r239875  
    103103        return [self.port_name, 'wk2'] + self.get_option("additional_platform_directory", [])
    104104
    105     def default_baseline_search_path(self):
     105    def default_baseline_search_path(self, **kwargs):
    106106        return map(self._webkit_baseline_path, self._search_paths())
    107107
Note: See TracChangeset for help on using the changeset viewer.