To reproduce: 1. new-run-webkit-tests You'll see this: Starting HTTP server ...Traceback (most recent call last): File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 433, in <module> sys.exit(main()) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 428, in main return run(port, options, args) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 107, in run num_unexpected_results = manager.run(result_summary) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 874, in run interrupted, keyboard_interrupted, thread_timings, test_timings, individual_test_timings = self._run_tests(self._test_files_list, result_summary) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 723, in _run_tests self.start_servers_with_lock() File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 936, in start_servers_with_lock self._port.start_http_server() File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/port/base.py", line 667, in start_http_server server = apache_http_server.LayoutTestApacheHttpd(self, self.results_directory()) File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py", line 79, in __init__ '-f', "\"%s\"" % self._get_apache_config_file_path(test_dir, output_dir), File "/home/Adam Roben/dev/WebKit/OpenSource/Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py", line 167, in _get_apache_config_file_path cygusr = self._port_obj._path_from_base('third_party', 'cygwin', 'usr') AttributeError: 'WinPort' object has no attribute '_path_from_base' I think this is happening because apache_http_server.py has a whole bunch of code that assumes Chromium is the only port that uses Cygwin or Windows.
The last time we talked about this (2 years ago?) I think we discussed ripping out all the Chromium/Win support in this file, since Chromium uses LigHTTPD on Windows.
Sounds like a great idea to me! I'm busy with other NRWT bugs atm, but I'll get to this one eventually if no one else does.
(In reply to comment #1) > The last time we talked about this (2 years ago?) I think we discussed ripping out all the Chromium/Win support in this file, since Chromium uses LigHTTPD on Windows. Yeah. I think that's probably the right thing to do. Eventually, I think Chromium will want to move Windows back to using Apache, but in the absence of someone willing to drive that effort, we shouldn't block other work on it.
Even if Chromium ever does get around to using apache2 on Windows, it probably would make more sense for it to be the Win32 apache, in which case I bet most of that code would need to get rewritten anyway.
Created attachment 101024 [details] Patch
Comment on attachment 101024 [details] Patch I think there's more code that can be removed. All uses of _cygwin_safe_join can be replaced with os.path.join, and all calls to _get_cygwin_path should be removed.
To put it more succinctly: We should change _is_cygwin to always return false, and then perform dead-code elimination. _is_cygwin really means "we're using Apache Cygwin but Win32 Python", which is not the case for Apple's Windows port.
Created attachment 101035 [details] Patch
Here is a second (more agressive) attempt per Adam's suggestion.
Comment on attachment 101035 [details] Patch Clearing flags on attachment: 101035 Committed r91121: <http://trac.webkit.org/changeset/91121>
All reviewed patches have been landed. Closing bug.