<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[190290] trunk/Tools</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/190290">190290</a></dd>
<dt>Author</dt> <dd>bfulgham@apple.com</dd>
<dt>Date</dt> <dd>2015-09-28 15:44:17 -0700 (Mon, 28 Sep 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>[Win] Allow Windows to run test-webkitpy without Cygwin
https://bugs.webkit.org/show_bug.cgi?id=149602
Reviewed by Alex Christensen.
These changes mostly shift from hard-coded paths using UNIX-style
separators to Python's "os.path.join" syntax that uses the correct
path separator for each platform.
* Scripts/webkitpy/common/system/path.py:
(cygpath): Don't pass paths through Cygpath on native Windows.
* Scripts/webkitpy/port/win.py:
(WinPort._path_to_apache): Use os.path.join.
(WinPort._ntsd_location): Support 64-bit environment (ProgramW6432 doesn't exist
in 64-bit environments).
* Scripts/webkitpy/style/checker.py: Use os.path.join.
* Scripts/webkitpy/style/checker_unittest.py:
(GlobalVariablesTest.test_path_rules_specifier.assertNoCheck): Use os.path.join.
(GlobalVariablesTest.test_path_rules_specifier): Ditto.
(GlobalVariablesTest): Ditto.
(GlobalVariablesTest.test_max_reports_per_category): Ditto.
(CheckerDispatcherSkipTest.test_should_skip_with_warning): Ditto.
(CheckerDispatcherDispatchTest.test_js_paths): Ditto.
(CheckerDispatcherDispatchTest.test_json_paths): Ditto.
(CheckerDispatcherDispatchTest.test_python_paths): Ditto.
(CheckerDispatcherDispatchTest.test_text_paths): Ditto.
(CheckerDispatcherDispatchTest.test_xml_paths): Ditto.
(StyleProcessor_CodeCoverageTest._create_carriage_checker_class): Ditto.
(StyleProcessor_CodeCoverageTest): Ditto.
(StyleProcessor_CodeCoverageTest.test_should_process__skip_without_warning): Ditto.
(StyleProcessor_CodeCoverageTest.test_should_process__skip_with_warning): Ditto.
(StyleProcessor_CodeCoverageTest.test_should_process__true_result): Ditto.
* Scripts/webkitpy/w3c/test_parser_unittest.py: Uses os.path.join rather than
manual string concatenation of paths.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpycommonsystempathpy">trunk/Tools/Scripts/webkitpy/common/system/path.py</a></li>
<li><a href="#trunkToolsScriptswebkitpyportwinpy">trunk/Tools/Scripts/webkitpy/port/win.py</a></li>
<li><a href="#trunkToolsScriptswebkitpystylecheckerpy">trunk/Tools/Scripts/webkitpy/style/checker.py</a></li>
<li><a href="#trunkToolsScriptswebkitpystylechecker_unittestpy">trunk/Tools/Scripts/webkitpy/style/checker_unittest.py</a></li>
<li><a href="#trunkToolsScriptswebkitpyw3ctest_parser_unittestpy">trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (190289 => 190290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-09-28 22:37:36 UTC (rev 190289)
+++ trunk/Tools/ChangeLog        2015-09-28 22:44:17 UTC (rev 190290)
</span><span class="lines">@@ -1,3 +1,40 @@
</span><ins>+2015-09-28 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Allow Windows to run test-webkitpy without Cygwin
+ https://bugs.webkit.org/show_bug.cgi?id=149602
+
+ Reviewed by Alex Christensen.
+
+ These changes mostly shift from hard-coded paths using UNIX-style
+ separators to Python's "os.path.join" syntax that uses the correct
+ path separator for each platform.
+
+ * Scripts/webkitpy/common/system/path.py:
+ (cygpath): Don't pass paths through Cygpath on native Windows.
+ * Scripts/webkitpy/port/win.py:
+ (WinPort._path_to_apache): Use os.path.join.
+ (WinPort._ntsd_location): Support 64-bit environment (ProgramW6432 doesn't exist
+ in 64-bit environments).
+ * Scripts/webkitpy/style/checker.py: Use os.path.join.
+ * Scripts/webkitpy/style/checker_unittest.py:
+ (GlobalVariablesTest.test_path_rules_specifier.assertNoCheck): Use os.path.join.
+ (GlobalVariablesTest.test_path_rules_specifier): Ditto.
+ (GlobalVariablesTest): Ditto.
+ (GlobalVariablesTest.test_max_reports_per_category): Ditto.
+ (CheckerDispatcherSkipTest.test_should_skip_with_warning): Ditto.
+ (CheckerDispatcherDispatchTest.test_js_paths): Ditto.
+ (CheckerDispatcherDispatchTest.test_json_paths): Ditto.
+ (CheckerDispatcherDispatchTest.test_python_paths): Ditto.
+ (CheckerDispatcherDispatchTest.test_text_paths): Ditto.
+ (CheckerDispatcherDispatchTest.test_xml_paths): Ditto.
+ (StyleProcessor_CodeCoverageTest._create_carriage_checker_class): Ditto.
+ (StyleProcessor_CodeCoverageTest): Ditto.
+ (StyleProcessor_CodeCoverageTest.test_should_process__skip_without_warning): Ditto.
+ (StyleProcessor_CodeCoverageTest.test_should_process__skip_with_warning): Ditto.
+ (StyleProcessor_CodeCoverageTest.test_should_process__true_result): Ditto.
+ * Scripts/webkitpy/w3c/test_parser_unittest.py: Uses os.path.join rather than
+ manual string concatenation of paths.
+
</ins><span class="cx"> 2015-09-28 Csaba Osztrogonác <ossy@webkit.org>
</span><span class="cx">
</span><span class="cx"> Add bugzilla addresses of committers to contributors.json
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpycommonsystempathpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/common/system/path.py (190289 => 190290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/common/system/path.py        2015-09-28 22:37:36 UTC (rev 190289)
+++ trunk/Tools/Scripts/webkitpy/common/system/path.py        2015-09-28 22:44:17 UTC (rev 190290)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> """generic routines to convert platform-specific paths to URIs."""
</span><span class="cx">
</span><span class="cx"> import atexit
</span><ins>+import os
</ins><span class="cx"> import subprocess
</span><span class="cx"> import sys
</span><span class="cx"> import logging
</span><span class="lines">@@ -44,7 +45,9 @@
</span><span class="cx">
</span><span class="cx"> def cygpath(path):
</span><span class="cx"> """Converts an absolute cygwin path to an absolute Windows path."""
</span><del>- return _CygPath.convert_using_singleton(path)
</del><ins>+ if sys.platform == 'cygwin':
+ return _CygPath.convert_using_singleton(path)
+ return path
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> # Note that this object is not threadsafe and must only be called
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpyportwinpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/port/win.py (190289 => 190290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/port/win.py        2015-09-28 22:37:36 UTC (rev 190289)
+++ trunk/Tools/Scripts/webkitpy/port/win.py        2015-09-28 22:44:17 UTC (rev 190290)
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> return True
</span><span class="cx">
</span><span class="cx"> def _path_to_apache(self):
</span><del>- httpdPath = "C:/xampp/apache/bin/httpd.exe"
</del><ins>+ httpdPath = os.path.join('C:', 'xampp', 'apache', 'bin', 'httpd.exe')
</ins><span class="cx"> if self._filesystem.exists(httpdPath):
</span><span class="cx"> return httpdPath
</span><span class="cx"> _log.error("Could not find apache. Not installed or unknown path.")
</span><span class="lines">@@ -150,8 +150,9 @@
</span><span class="cx"> self._filesystem.join(os.environ['PROGRAMFILES'], "Windows Kits", "8.0", "Debuggers", "x86", "ntsd.exe"),
</span><span class="cx"> self._filesystem.join(os.environ['PROGRAMFILES'], "Windows Kits", "8.0", "Debuggers", "x64", "ntsd.exe"),
</span><span class="cx"> self._filesystem.join(os.environ['PROGRAMFILES'], "Debugging Tools for Windows (x86)", "ntsd.exe"),
</span><del>- self._filesystem.join(os.environ['ProgramW6432'], "Debugging Tools for Windows (x64)", "ntsd.exe"),
</del><span class="cx"> self._filesystem.join(os.environ['SYSTEMROOT'], "system32", "ntsd.exe")]
</span><ins>+ if 'ProgramW6432' in os.environ:
+ possible_paths.append(self._filesystem.join(os.environ['ProgramW6432'], "Debugging Tools for Windows (x64)", "ntsd.exe"))
</ins><span class="cx"> for path in possible_paths:
</span><span class="cx"> expanded_path = self._filesystem.expanduser(path)
</span><span class="cx"> if self._filesystem.exists(expanded_path):
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpystylecheckerpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/style/checker.py (190289 => 190290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/style/checker.py        2015-09-28 22:37:36 UTC (rev 190289)
+++ trunk/Tools/Scripts/webkitpy/style/checker.py        2015-09-28 22:44:17 UTC (rev 190290)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> # Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="cx"> # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
</span><span class="cx"> # Copyright (C) 2010 ProFUSION embedded systems
</span><del>-# Copyright (C) 2013 Apple Inc. All rights reserved.
</del><ins>+# Copyright (C) 2013, 2015 Apple Inc. All rights reserved.
</ins><span class="cx"> #
</span><span class="cx"> # Redistribution and use in source and binary forms, with or without
</span><span class="cx"> # modification, are permitted provided that the following conditions are
</span><span class="lines">@@ -136,29 +136,29 @@
</span><span class="cx">
</span><span class="cx"> ([# TestNetscapePlugIn has no config.h and uses funny names like
</span><span class="cx"> # NPP_SetWindow.
</span><del>- "Tools/DumpRenderTree/TestNetscapePlugIn/",
</del><ins>+ os.path.join('Tools', 'DumpRenderTree', 'TestNetscapePlugIn'),
</ins><span class="cx"> # The API test harnesses have no config.h and use funny macros like
</span><span class="cx"> # TEST_CLASS_NAME.
</span><del>- "Tools/WebKitAPITest/",
- "Tools/TestWebKitAPI/"],
</del><ins>+ os.path.join('Tools', 'WebKitAPITest'),
+ os.path.join('Tools', 'TestWebKitAPI')],
</ins><span class="cx"> ["-build/include",
</span><span class="cx"> "-readability/naming"]),
</span><span class="cx"> ([# There is no clean way to avoid "yy_*" names used by flex.
</span><del>- "Source/WebCore/css/CSSParser.cpp"],
</del><ins>+ os.path.join('Source', 'WebCore', 'css', 'CSSParser.cpp')],
</ins><span class="cx"> ["-readability/naming"]),
</span><span class="cx">
</span><span class="cx"> ([# The GTK+ APIs use GTK+ naming style, which includes
</span><span class="cx"> # lower-cased, underscore-separated values, whitespace before
</span><span class="cx"> # parens for function calls, and always having variable names.
</span><span class="cx"> # Also, GTK+ allows the use of NULL.
</span><del>- "Source/WebCore/bindings/gobject/WebKitDOMCustom.h",
- "Source/WebCore/bindings/gobject/WebKitDOMDeprecated.h",
- "Source/WebCore/bindings/gobject/WebKitDOMEventTarget.h",
- "Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.h",
- "Source/WebCore/bindings/gobject/WebKitDOMXPathNSResolver.h",
- "Source/WebCore/bindings/scripts/test/GObject",
- "Source/WebKit/gtk/webkit/",
- "Tools/DumpRenderTree/gtk/"],
</del><ins>+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMCustom.h'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMDeprecated.h'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMEventTarget.h'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMNodeFilter.h'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMXPathNSResolver.h'),
+ os.path.join('Source', 'WebCore', 'bindings', 'scripts', 'test', 'GObject'),
+ os.path.join('Source', 'WebKit', 'gtk', 'webkit'),
+ os.path.join('Tools', 'DumpRenderTree', 'gtk')],
</ins><span class="cx"> ["-readability/naming",
</span><span class="cx"> "-readability/parameter_name",
</span><span class="cx"> "-readability/null",
</span><span class="lines">@@ -169,34 +169,34 @@
</span><span class="cx">
</span><span class="cx"> ([# The GTK+ API use upper case, underscore separated, words in
</span><span class="cx"> # certain types of enums (e.g. signals, properties).
</span><del>- "Source/WebKit2/UIProcess/API/gtk",
- "Source/WebKit2/WebProcess/InjectedBundle/API/gtk"],
</del><ins>+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk'),
+ os.path.join('Source', 'WebKit2', 'WebProcess', 'InjectedBundle', 'API', 'gtk')],
</ins><span class="cx"> ["-readability/enum_casing"]),
</span><span class="cx">
</span><span class="cx"> ([# Header files in ForwardingHeaders have no header guards or
</span><span class="cx"> # exceptional header guards (e.g., WebCore_FWD_Debugger_h).
</span><del>- "/ForwardingHeaders/"],
</del><ins>+ os.path.join(os.path.sep, 'ForwardingHeaders')],
</ins><span class="cx"> ["-build/header_guard"]),
</span><span class="cx"> ([# assembler has lots of opcodes that use underscores, so
</span><span class="cx"> # we don't check for underscores in that directory.
</span><del>- "Source/JavaScriptCore/assembler/",
- "Source/JavaScriptCore/jit/JIT"],
</del><ins>+ os.path.join('Source', 'JavaScriptCore', 'assembler'),
+ os.path.join('Source', 'JavaScriptCore', 'jit', 'JIT')],
</ins><span class="cx"> ["-readability/naming/underscores"]),
</span><span class="cx"> ([# JITStubs has an usual syntax which causes false alarms for a few checks.
</span><del>- "JavaScriptCore/jit/JITStubs.cpp"],
</del><ins>+ os.path.join('JavaScriptCore', 'jit', 'JITStubs.cpp')],
</ins><span class="cx"> ["-readability/parameter_name",
</span><span class="cx"> "-whitespace/parens"]),
</span><span class="cx">
</span><span class="cx"> ([# The EFL APIs use EFL naming style, which includes
</span><span class="cx"> # both lower-cased and camel-cased, underscore-sparated
</span><span class="cx"> # values.
</span><del>- "Source/WebKit2/UIProcess/API/efl/",
- "Source/WebKit2/WebProcess/InjectedBundle/API/efl/"],
</del><ins>+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'efl'),
+ os.path.join('Source', 'WebKit2', 'WebProcess', 'InjectedBundle', 'API', 'efl')],
</ins><span class="cx"> ["-readability/naming",
</span><span class="cx"> "-readability/parameter_name"]),
</span><span class="cx"> ([# MiniBrowser/efl are EFL simple application.
</span><span class="cx"> # They need to use efl coding style and they don't have config.h.
</span><del>- "Tools/MiniBrowser/efl/"],
</del><ins>+ os.path.join('Tools', 'MiniBrowser', 'efl')],
</ins><span class="cx"> ["-readability/naming",
</span><span class="cx"> "-readability/parameter_name",
</span><span class="cx"> "-runtime/ctype_function",
</span><span class="lines">@@ -206,33 +206,33 @@
</span><span class="cx"> # WebKit2 rules:
</span><span class="cx"> # WebKit2 and certain directories have idiosyncracies.
</span><span class="cx"> ([# NPAPI has function names with underscores.
</span><del>- "Source/WebKit2/WebProcess/Plugins/Netscape"],
</del><ins>+ os.path.join('Source', 'WebKit2', 'WebProcess', 'Plugins', 'Netscape')],
</ins><span class="cx"> ["-readability/naming"]),
</span><span class="cx"> ([# The WebKit2 C API has names with underscores and whitespace-aligned
</span><span class="cx"> # struct members. Also, we allow unnecessary parameter names in
</span><span class="cx"> # WebKit2 APIs because we're matching CF's header style.
</span><span class="cx"> # Additionally, we use word which starts with non-capital letter 'k'
</span><span class="cx"> # for types of enums.
</span><del>- "Source/WebKit2/UIProcess/API/C/",
- "Source/WebKit2/Shared/API/c/",
- "Source/WebKit2/WebProcess/InjectedBundle/API/c/"],
</del><ins>+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'C'),
+ os.path.join('Source', 'WebKit2', 'Shared', 'API', 'c'),
+ os.path.join('Source', 'WebKit2', 'WebProcess', 'InjectedBundle', 'API', 'c')],
</ins><span class="cx"> ["-readability/enum_casing",
</span><span class="cx"> "-readability/naming",
</span><span class="cx"> "-readability/parameter_name",
</span><span class="cx"> "-whitespace/declaration"]),
</span><span class="cx"> ([# These files define GObjects, which implies some definitions of
</span><span class="cx"> # variables and functions containing underscores.
</span><del>- "Source/WebCore/bindings/gobject/WebKitDOMCustom.cpp",
- "Source/WebCore/bindings/gobject/WebKitDOMDeprecated.cpp",
- "Source/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp",
- "Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp",
- "Source/WebCore/bindings/gobject/WebKitDOMXPathNSResolver.cpp",
- "Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer1.cpp",
- "Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp",
- "Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp",
- "Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp",
- "Source/WebCore/platform/network/soup/ProxyResolverSoup.cpp",
- "Source/WebCore/platform/network/soup/ProxyResolverSoup.h"],
</del><ins>+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMCustom.cpp'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMDeprecated.cpp'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMEventTarget.cpp'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMNodeFilter.cpp'),
+ os.path.join('Source', 'WebCore', 'bindings', 'gobject', 'WebKitDOMXPathNSResolver.cpp'),
+ os.path.join('Source', 'WebCore', 'platform', 'graphics', 'gstreamer', 'VideoSinkGStreamer1.cpp'),
+ os.path.join('Source', 'WebCore', 'platform', 'graphics', 'gstreamer', 'VideoSinkGStreamer.cpp'),
+ os.path.join('Source', 'WebCore', 'platform', 'graphics', 'gstreamer', 'WebKitWebSourceGStreamer.cpp'),
+ os.path.join('Source', 'WebCore', 'platform', 'audio', 'gstreamer', 'WebKitWebAudioSourceGStreamer.cpp'),
+ os.path.join('Source', 'WebCore', 'platform', 'network', 'soup', 'ProxyResolverSoup.cpp'),
+ os.path.join('Source', 'WebCore', 'platform', 'network', 'soup', 'ProxyResolverSoup.h')],
</ins><span class="cx"> ["-readability/naming",
</span><span class="cx"> "-readability/enum_casing"]),
</span><span class="cx">
</span><span class="lines">@@ -242,7 +242,7 @@
</span><span class="cx"> # No trailing white space: since this is easy to correct.
</span><span class="cx"> # No carriage-return line endings: since this is easy to correct.
</span><span class="cx"> #
</span><del>- (["webkitpy/thirdparty/"],
</del><ins>+ ([os.path.join('webkitpy', 'thirdparty')],
</ins><span class="cx"> ["-",
</span><span class="cx"> "+pep8/W191", # Tabs
</span><span class="cx"> "+pep8/W291", # Trailing white space
</span><span class="lines">@@ -250,11 +250,11 @@
</span><span class="cx">
</span><span class="cx"> ([# There is no way to avoid the symbols __jit_debug_register_code
</span><span class="cx"> # and __jit_debug_descriptor when integrating with gdb.
</span><del>- "Source/JavaScriptCore/jit/GDBInterface.cpp"],
</del><ins>+ os.path.join('Source', 'JavaScriptCore', 'jit', 'GDBInterface.cpp')],
</ins><span class="cx"> ["-readability/naming"]),
</span><span class="cx">
</span><span class="cx"> ([# On some systems the trailing CR is causing parser failure.
</span><del>- "Source/JavaScriptCore/parser/Keywords.table"],
</del><ins>+ os.path.join('Source', 'JavaScriptCore', 'parser', 'Keywords.table')],
</ins><span class="cx"> ["+whitespace/carriage_return"]),
</span><span class="cx"> ]
</span><span class="cx">
</span><span class="lines">@@ -316,14 +316,14 @@
</span><span class="cx"> # WebKit maintains some files in Mozilla style on purpose to ease
</span><span class="cx"> # future merges.
</span><span class="cx"> _SKIPPED_FILES_WITH_WARNING = [
</span><del>- "Tools/TestWebKitAPI/Tests/WebKitGtk/",
</del><ins>+ os.path.join('Tools', 'TestWebKitAPI', 'Tests', 'WebKitGtk'),
</ins><span class="cx"> # All WebKit*.h files in Source/WebKit2/UIProcess/API/gtk,
</span><span class="cx"> # except those ending in ...Private.h are GTK+ API headers,
</span><span class="cx"> # which differ greatly from WebKit coding style.
</span><del>- re.compile(r'Source/WebKit2/UIProcess/API/gtk/WebKit(?!.*Private\.h).*\.h$'),
- re.compile(r'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKit(?!.*Private\.h).*\.h$'),
- 'Source/WebKit2/UIProcess/API/gtk/webkit2.h',
- 'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h']
</del><ins>+ re.compile(re.escape(os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk') + os.path.sep) + r'WebKit(?!.*Private\.h).*\.h$'),
+ re.compile(re.escape(os.path.join('Source', 'WebKit2', 'WebProcess', 'InjectedBundle', 'API', 'gtk') + os.path.sep) + r'WebKit(?!.*Private\.h).*\.h$'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'webkit2.h'),
+ os.path.join('Source', 'WebKit2', 'WebProcess', 'InjectedBundle', 'API', 'gtk', 'webkit-web-extension.h')]
</ins><span class="cx">
</span><span class="cx"> # Files to skip that are more common or obvious.
</span><span class="cx"> #
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpystylechecker_unittestpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/style/checker_unittest.py (190289 => 190290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/style/checker_unittest.py        2015-09-28 22:37:36 UTC (rev 190289)
+++ trunk/Tools/Scripts/webkitpy/style/checker_unittest.py        2015-09-28 22:44:17 UTC (rev 190290)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx"> #
</span><span class="cx"> # Copyright (C) 2009 Google Inc. All rights reserved.
</span><span class="cx"> # Copyright (C) 2009 Torch Mobile Inc.
</span><del>-# Copyright (C) 2009, 2013 Apple Inc. All rights reserved.
</del><ins>+# Copyright (C) 2009, 2013, 2015 Apple Inc. All rights reserved.
</ins><span class="cx"> # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com)
</span><span class="cx"> #
</span><span class="cx"> # Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -213,27 +213,27 @@
</span><span class="cx">
</span><span class="cx"> assertCheck("random_path.cpp",
</span><span class="cx"> "build/include")
</span><del>- assertNoCheck("Tools/WebKitAPITest/main.cpp",
</del><ins>+ assertNoCheck(os.path.join('Tools', 'WebKitAPITest', 'main.cpp'),
</ins><span class="cx"> "build/include")
</span><span class="cx"> assertCheck("random_path.cpp",
</span><span class="cx"> "readability/naming")
</span><del>- assertNoCheck("Source/WebKit/gtk/webkit/webkit.h",
</del><ins>+ assertNoCheck(os.path.join('Source', 'WebKit', 'gtk', 'webkit', 'webkit.h'),
</ins><span class="cx"> "readability/naming")
</span><del>- assertNoCheck("Tools/DumpRenderTree/gtk/DumpRenderTree.cpp",
</del><ins>+ assertNoCheck(os.path.join('Tools', 'DumpRenderTree', 'gtk', 'DumpRenderTree.cpp'),
</ins><span class="cx"> "readability/null")
</span><del>- assertNoCheck("Source/WebKit2/UIProcess/API/efl/ewk_view.h",
</del><ins>+ assertNoCheck(os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'efl', 'ewk_view.h'),
</ins><span class="cx"> "readability/naming")
</span><del>- assertNoCheck("Source/WebCore/css/CSSParser.cpp",
</del><ins>+ assertNoCheck(os.path.join('Source', 'WebCore', 'css', 'CSSParser.cpp'),
</ins><span class="cx"> "readability/naming")
</span><span class="cx">
</span><del>- assertNoCheck("Source/WebCore/ForwardingHeaders/debugger/Debugger.h",
</del><ins>+ assertNoCheck(os.path.join('Source', 'WebCore', 'ForwardingHeaders', 'debugger', 'Debugger.h'),
</ins><span class="cx"> "build/header_guard")
</span><span class="cx">
</span><del>- assertNoCheck("Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp",
</del><ins>+ assertNoCheck(os.path.join('Source', 'WebCore', 'platform', 'graphics', 'gstreamer', 'VideoSinkGStreamer.cpp'),
</ins><span class="cx"> "readability/naming")
</span><span class="cx">
</span><span class="cx"> # Third-party Python code: webkitpy/thirdparty
</span><del>- path = "Tools/Scripts/webkitpy/thirdparty/mock.py"
</del><ins>+ path = os.path.join('Tools', 'Scripts', 'webkitpy', 'thirdparty', 'mock.py')
</ins><span class="cx"> assertNoCheck(path, "build/include")
</span><span class="cx"> assertNoCheck(path, "pep8/E401") # A random pep8 category.
</span><span class="cx"> assertCheck(path, "pep8/W191")
</span><span class="lines">@@ -241,11 +241,11 @@
</span><span class="cx"> assertCheck(path, "whitespace/carriage_return")
</span><span class="cx">
</span><span class="cx"> # Test if the exception for GDBInterface.cpp is in place.
</span><del>- assertNoCheck("Source/JavaScriptCore/jit/GDBInterface.cpp",
</del><ins>+ assertNoCheck(os.path.join('Source', 'JavaScriptCore', 'jit', 'GDBInterface.cpp'),
</ins><span class="cx"> "readability/naming")
</span><span class="cx">
</span><span class="cx"> # Javascript keywords.
</span><del>- assertCheck("Source/JavaScriptCore/parser/Keywords.table", "whitespace/carriage_return")
</del><ins>+ assertCheck(os.path.join('Source', 'JavaScriptCore', 'parser', 'Keywords.table'), "whitespace/carriage_return")
</ins><span class="cx">
</span><span class="cx"> def test_max_reports_per_category(self):
</span><span class="cx"> """Check that _MAX_REPORTS_PER_CATEGORY is valid."""
</span><span class="lines">@@ -280,10 +280,10 @@
</span><span class="cx"> """Test should_skip_with_warning()."""
</span><span class="cx"> # Check skipped files.
</span><span class="cx"> paths_to_skip = [
</span><del>- "Tools/TestWebKitAPI/Tests/WebKitGtk/testatk.c",
- "Source/WebKit2/UIProcess/API/gtk/webkit2.h",
- "Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h",
- "Source/WebKit2/UIProcess/API/gtk/WebKitLoader.h",
</del><ins>+ os.path.join('Tools', 'TestWebKitAPI', 'Tests', 'WebKitGtk', 'testatk.c'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'webkit2.h'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'WebKitWebView.h'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'WebKitLoader.h'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths_to_skip:
</span><span class="lines">@@ -293,12 +293,12 @@
</span><span class="cx"> # Verify that some files are not skipped.
</span><span class="cx"> paths_not_to_skip = [
</span><span class="cx"> "foo.txt",
</span><del>- "Source/WebKit2/UIProcess/API/gtk/HelperClass.cpp",
- "Source/WebKit2/UIProcess/API/gtk/HelperClass.h",
- "Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp",
- "Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h",
- "Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebViewTest.cpp",
- "Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebViewTest.h",
</del><ins>+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'HelperClass.cpp'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'HelperClass.h'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'WebKitWebView.cpp'),
+ os.path.join('Source', 'WebKit2', 'UIProcess', 'API', 'gtk', 'WebKitWebViewPrivate.h'),
+ os.path.join('Tools', 'TestWebKitAPI', 'Tests', 'WebKit2Gtk', 'WebViewTest.cpp'),
+ os.path.join('Tools', 'TestWebKitAPI', 'Tests', 'WebKit2Gtk', 'WebViewTest.h'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths_not_to_skip:
</span><span class="lines">@@ -471,7 +471,7 @@
</span><span class="cx"> def test_js_paths(self):
</span><span class="cx"> """Test paths that should be checked as JavaScript."""
</span><span class="cx"> paths = [
</span><del>- "Source/WebInspectorUI/UserInterface/dummy.js",
</del><ins>+ os.path.join('Source', 'WebInspectorUI', 'UserInterface', 'dummy.js'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths:
</span><span class="lines">@@ -489,8 +489,8 @@
</span><span class="cx"> def test_json_paths(self):
</span><span class="cx"> """Test paths that should be checked as JSON."""
</span><span class="cx"> paths = [
</span><del>- "Source/WebCore/inspector/Inspector.json",
- "Tools/BuildSlaveSupport/build.webkit.org-config/config.json",
</del><ins>+ os.path.join('Source', 'WebCore', 'inspector', 'Inspector.json'),
+ os.path.join('Tools', 'BuildSlaveSupport', 'build.webkit.org-config', 'config.json'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths:
</span><span class="lines">@@ -509,7 +509,7 @@
</span><span class="cx"> """Test paths that should be checked as Python."""
</span><span class="cx"> paths = [
</span><span class="cx"> "foo.py",
</span><del>- "Tools/Scripts/modules/text_style.py",
</del><ins>+ os.path.join('Tools', 'Scripts', 'modules', 'text_style.py'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths:
</span><span class="lines">@@ -550,10 +550,10 @@
</span><span class="cx"> "foo.wm",
</span><span class="cx"> "foo.xhtml",
</span><span class="cx"> "foo.y",
</span><del>- "Source/WebInspectorUI/External/codemirror.js",
- "LayoutTests/fast/foo.js",
- "Websites/webkit.org/foo.js",
- os.path.join("Tools", "Scripts", "check-webkit-style"),
</del><ins>+ os.path.join('Source', 'WebInspectorUI', 'External', 'codemirror.js'),
+ os.path.join('LayoutTests', 'fast', 'foo.js'),
+ os.path.join('Websites', 'webkit.org', 'foo.js'),
+ os.path.join('Tools', 'Scripts', 'check-webkit-style'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths:
</span><span class="lines">@@ -571,8 +571,8 @@
</span><span class="cx"> def test_xml_paths(self):
</span><span class="cx"> """Test paths that should be checked as XML."""
</span><span class="cx"> paths = [
</span><del>- "Source/WebCore/WebCore.vcproj/WebCore.vcproj",
- "WebKitLibraries/win/tools/vsprops/common.vsprops",
</del><ins>+ os.path.join('Source', 'WebCore', 'WebCore.vcproj', 'WebCore.vcproj'),
+ os.path.join('WebKitLibraries', 'win', 'tools', 'vsprops', 'common.vsprops'),
</ins><span class="cx"> ]
</span><span class="cx">
</span><span class="cx"> for path in paths:
</span><span class="lines">@@ -807,22 +807,22 @@
</span><span class="cx">
</span><span class="cx"> def test_should_process__skip_without_warning(self):
</span><span class="cx"> """Test should_process() for a skip-without-warning file."""
</span><del>- file_path = "foo/skip_without_warning.txt"
</del><ins>+ file_path = os.path.join('foo', 'skip_without_warning.txt')
</ins><span class="cx">
</span><span class="cx"> self.assertFalse(self._processor.should_process(file_path))
</span><span class="cx">
</span><span class="cx"> def test_should_process__skip_with_warning(self):
</span><span class="cx"> """Test should_process() for a skip-with-warning file."""
</span><del>- file_path = "foo/skip_with_warning.txt"
</del><ins>+ file_path = os.path.join('foo', 'skip_with_warning.txt')
</ins><span class="cx">
</span><span class="cx"> self.assertFalse(self._processor.should_process(file_path))
</span><span class="cx">
</span><span class="cx"> self.assertLog(['WARNING: File exempt from style guide. '
</span><del>- 'Skipping: "foo/skip_with_warning.txt"\n'])
</del><ins>+ 'Skipping: "{0}"\n'.format(os.path.join('foo', 'skip_with_warning.txt'))])
</ins><span class="cx">
</span><span class="cx"> def test_should_process__true_result(self):
</span><span class="cx"> """Test should_process() for a file that should be processed."""
</span><del>- file_path = "foo/skip_process.txt"
</del><ins>+ file_path = os.path.join('foo', 'skip_process.txt')
</ins><span class="cx">
</span><span class="cx"> self.assertTrue(self._processor.should_process(file_path))
</span><span class="cx">
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpyw3ctest_parser_unittestpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py (190289 => 190290)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py        2015-09-28 22:37:36 UTC (rev 190289)
+++ trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py        2015-09-28 22:44:17 UTC (rev 190290)
</span><span class="lines">@@ -1,4 +1,5 @@
</span><span class="cx"> # Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
</span><ins>+# Copyright (C) 2015 Apple Inc. All Rights Reserved.
</ins><span class="cx"> #
</span><span class="cx"> # Redistribution and use in source and binary forms, with or without
</span><span class="cx"> # modification, are permitted provided that the following conditions
</span><span class="lines">@@ -42,8 +43,8 @@
</span><span class="cx"> <link rel="match" href="green-box-ref.xht" />
</span><span class="cx"> </head>
</span><span class="cx"> """
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx">
</span><span class="cx"> self.assertNotEqual(test_info, None, 'did not find a test')
</span><span class="lines">@@ -63,8 +64,8 @@
</span><span class="cx"> oc = OutputCapture()
</span><span class="cx"> oc.capture_output()
</span><span class="cx"> try:
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx"> finally:
</span><span class="cx"> _, _, logs = oc.restore_output()
</span><span class="lines">@@ -89,8 +90,8 @@
</span><span class="cx"> oc.capture_output()
</span><span class="cx">
</span><span class="cx"> try:
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx"> finally:
</span><span class="cx"> _, _, logs = oc.restore_output()
</span><span class="lines">@@ -123,8 +124,8 @@
</span><span class="cx"> </body>
</span><span class="cx"> </html>
</span><span class="cx"> """
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html, ref_contents=ref_html)
</span><span class="cx">
</span><span class="cx"> self.assertNotEqual(test_info, None, 'did not find a test')
</span><span class="lines">@@ -143,8 +144,8 @@
</span><span class="cx"> <script src="/resources/testharness.js"></script>
</span><span class="cx"> </head>
</span><span class="cx"> """
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx">
</span><span class="cx"> self.assertNotEqual(test_info, None, 'test_info is None')
</span><span class="lines">@@ -161,8 +162,8 @@
</span><span class="cx"> <script src="/resources/testharness.js"></script>
</span><span class="cx"> </head>
</span><span class="cx"> """
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile-manual.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile-manual.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx">
</span><span class="cx"> self.assertEqual(test_info, None, 'test_info is None')
</span><span class="lines">@@ -186,8 +187,8 @@
</span><span class="cx"> # Set options to 'all' so this gets found
</span><span class="cx"> options['all'] = True
</span><span class="cx">
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx">
</span><span class="cx"> self.assertNotEqual(test_info, None, 'test_info is None')
</span><span class="lines">@@ -215,8 +216,8 @@
</span><span class="cx"> # Set all to false so this gets skipped
</span><span class="cx"> options['all'] = False
</span><span class="cx">
</span><del>- test_path = '/some/madeup/path/'
- parser = TestParser(options, test_path + 'somefile.html')
</del><ins>+ test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path')
+ parser = TestParser(options, os.path.join(test_path, 'somefile.html'))
</ins><span class="cx"> test_info = parser.analyze_test(test_contents=test_html)
</span><span class="cx">
</span><span class="cx"> self.assertEqual(test_info, None, 'test should have been skipped')
</span></span></pre>
</div>
</div>
</body>
</html>