Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """A utility class for interacting with a local checkout of the Web Platform Tes ts.""" | 5 """A utility class for interacting with a local checkout of the Web Platform Tes ts.""" |
| 6 | 6 |
| 7 import logging | 7 import logging |
| 8 | 8 |
| 9 from webkitpy.common.system.executive import ScriptError | |
| 9 from webkitpy.w3c.chromium_commit import ChromiumCommit | 10 from webkitpy.w3c.chromium_commit import ChromiumCommit |
| 10 | 11 |
| 11 WPT_REPO_URL = 'https://chromium.googlesource.com/external/w3c/web-platform-test s.git' | 12 WPT_REPO_URL = 'https://chromium.googlesource.com/external/w3c/web-platform-test s.git' |
| 12 WPT_TMP_DIR = '/tmp/wpt' | 13 WPT_TMP_DIR = '/tmp/wpt' |
| 13 CHROMIUM_WPT_DIR = 'third_party/WebKit/LayoutTests/imported/wpt/' | 14 CHROMIUM_WPT_DIR = 'third_party/WebKit/LayoutTests/imported/wpt/' |
| 14 | 15 |
| 15 _log = logging.getLogger(__name__) | 16 _log = logging.getLogger(__name__) |
| 16 | 17 |
| 17 | 18 |
| 18 class LocalWPT(object): | 19 class LocalWPT(object): |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 patch = patch.replace(CHROMIUM_WPT_DIR, '') | 101 patch = patch.replace(CHROMIUM_WPT_DIR, '') |
| 101 | 102 |
| 102 # TODO(jeffcarp): Use git am -p<n> where n is len(CHROMIUM_WPT_DIR.split (/')) | 103 # TODO(jeffcarp): Use git am -p<n> where n is len(CHROMIUM_WPT_DIR.split (/')) |
| 103 # or something not off-by-one. | 104 # or something not off-by-one. |
| 104 self.run(['git', 'apply', '-'], input=patch) | 105 self.run(['git', 'apply', '-'], input=patch) |
| 105 self.run(['git', 'commit', '-am', message]) | 106 self.run(['git', 'commit', '-am', message]) |
| 106 self.run(['git', 'push', 'github', branch_name]) | 107 self.run(['git', 'push', 'github', branch_name]) |
| 107 | 108 |
| 108 return branch_name | 109 return branch_name |
| 109 | 110 |
| 111 def test_patch(self, patch): | |
| 112 """Returns the expected output of a patch agains origin/master. | |
|
qyearsley
2016/12/22 22:04:54
Nit: agains -> against
| |
| 113 | |
| 114 Args: | |
| 115 patch: The patch to test against. | |
| 116 | |
| 117 Returns: | |
| 118 A string containing the diff the patch produced. | |
|
qyearsley
2016/12/22 22:04:54
Sometimes I'm confused about the words "diff" and
jeffcarp
2016/12/22 23:14:29
Hm what do you suggest re: diff/patch?
That sound
qyearsley
2016/12/22 23:19:53
I was wondering if you could put an example (very
| |
| 119 """ | |
| 120 self.clean() | |
| 121 | |
| 122 # Remove Chromium WPT directory prefix. | |
| 123 # TODO(jeffcarp): dedupe | |
|
qyearsley
2016/12/22 22:04:54
Dedupe what?
jeffcarp
2016/12/22 23:14:29
Oops it was already deduped.
| |
| 124 patch = patch.replace(CHROMIUM_WPT_DIR, '') | |
| 125 | |
| 126 try: | |
| 127 self.run(['git', 'apply', '-'], input=patch) | |
| 128 self.run(['git', 'add', '.']) | |
| 129 output = self.run(['git', 'diff', 'origin/master']) | |
| 130 except ScriptError as error: | |
| 131 _log.error('Error while applying patch: %s', error) | |
| 132 output = '' | |
| 133 | |
| 134 self.clean() | |
| 135 return output | |
| 136 | |
| 110 def commits_behind_master(self, commit): | 137 def commits_behind_master(self, commit): |
| 111 """Returns the number of commits after the given commit on origin/master . | 138 """Returns the number of commits after the given commit on origin/master . |
| 112 | 139 |
| 113 This doesn't include the given commit, and this assumes that the given | 140 This doesn't include the given commit, and this assumes that the given |
| 114 commit is on the the master branch. | 141 commit is on the the master branch. |
| 115 """ | 142 """ |
| 116 return len(self.run([ | 143 return len(self.run([ |
| 117 'git', 'rev-list', '{}..origin/master'.format(commit) | 144 'git', 'rev-list', '{}..origin/master'.format(commit) |
| 118 ]).splitlines()) | 145 ]).splitlines()) |
| OLD | NEW |