To reproduce on Windows 7 SP1: 1. new-run-webkit-tests You'll get something like this: Starting 1 worker ...Process _Process-1: Traceback (most recent call last): File "/usr/lib/python2.6/multiprocessing/process.py", line 232, in _bootstrap self.run() File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py", line 269, in run port_obj = host.port_factory.get(self._platform_name, options) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/port/factory.py", line 135, in get return self._get_kwargs(**kwargs) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/port/factory.py", line 115, in _get_kwargs return maker(self._host, **kwargs) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/port/win.py", line 79, in __init__ ApplePort.__init__(self, host, **kwargs) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/port/apple.py", line 74, in __init__ assert port_name in allowed_port_names, "%s is not in %s" % (por t_name, allowed_port_names) AssertionError: win-future is not in ['win-xp', 'win-vista', 'win-7sp0', 'win', 'mac-future']
Looks like WinPort.__init__ is setting self._operating_system before calling up to the super class, but Port.__init__ overwrites it.
<rdar://problem/10637385>
Created attachment 120972 [details] Make Port subclasses override the operating_system method rather than setting an attribute
Comment on attachment 120972 [details] Make Port subclasses override the operating_system method rather than setting an attribute OK.
Comment on attachment 120972 [details] Make Port subclasses override the operating_system method rather than setting an attribute View in context: https://bugs.webkit.org/attachment.cgi?id=120972&action=review > Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:108 > + def test_operating_system(self): > + self.assertEqual('win', self.make_port().operating_system()) This test would have failed before your patch, right? The most important bit of this change is the test. :)
Comment on attachment 120972 [details] Make Port subclasses override the operating_system method rather than setting an attribute View in context: https://bugs.webkit.org/attachment.cgi?id=120972&action=review >> Tools/Scripts/webkitpy/layout_tests/port/win_unittest.py:108 >> + self.assertEqual('win', self.make_port().operating_system()) > > This test would have failed before your patch, right? The most important bit of this change is the test. :) Exactly! I tested that it fails without my patch.
Committed r103952: <http://trac.webkit.org/changeset/103952>