Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3245)

Unified Diff: appengine/findit/waterfall/test/build_failure_analysis_pipelines_test.py

Issue 838003004: [Findit] Add three sub-pipelines to analyze build failure. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Address comments. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/findit/waterfall/test/build_failure_analysis_pipelines_test.py
diff --git a/appengine/findit/waterfall/test/build_failure_analysis_pipelines_test.py b/appengine/findit/waterfall/test/build_failure_analysis_pipelines_test.py
index b8e26621b4a43326887c62fe223f047530ad565a..614ffe22a3c60f3f2d3b0712c1fcf6a54c8bee79 100644
--- a/appengine/findit/waterfall/test/build_failure_analysis_pipelines_test.py
+++ b/appengine/findit/waterfall/test/build_failure_analysis_pipelines_test.py
@@ -58,19 +58,62 @@ class BuildFailureAnalysisPipelinesTest(testing.AppengineTestCase):
self.assertTrue(need_analysis)
+ def _MockChangeLog(
+ self, urlfetch, user_name, revision, commit_position, file_path):
+ url = ('https://chromium.googlesource.com/chromium/src/+/%s?format=json'
+ % revision)
+
+ COMMIT_LOG_TEMPLATE = """)]}'
+ {
+ "commit": "REVISION",
+ "tree": "tree_rev",
+ "parents": [
+ "revX"
+ ],
+ "author": {
+ "name": "USER_NAME@chromium.org",
+ "email": "USER_NAME@chromium.org",
+ "time": "Wed Jun 11 19:35:32 2014"
+ },
+ "committer": {
+ "name": "USER_NAME@chromium.org",
+ "email": "USER_NAME@chromium.org",
+ "time": "Wed Jun 11 19:35:32 2014"
+ },
+ "message":
+ "git-svn-id: svn://svn.chromium.org/chromium/src@COMMIT_POSITION bla",
+ "tree_diff": [
+ {
+ "type": "modify",
+ "old_id": "idX",
+ "old_mode": 33188,
+ "old_path": "FILE_PATH",
+ "new_id": "idY",
+ "new_mode": 33188,
+ "new_path": "FILE_PATH"
+ }
+ ]
+ }
+ """
+ commit_log = COMMIT_LOG_TEMPLATE.replace(
+ 'REVISION', revision).replace('USER_NAME', user_name).replace(
+ 'COMMIT_POSITION', str(commit_position)).replace('FILE_PATH', file_path)
+ urlfetch.register_handler(url, commit_log)
+
+
def testSuccessfulAnalysisOfBuildFailure(self):
master_name = 'm'
builder_name = 'b'
- build_number = 123
+ build_number = 124
def _WaitUntilDownloadAllowed(*_):
return True
self.mock(lock_util, 'WaitUntilDownloadAllowed', _WaitUntilDownloadAllowed)
- # Mock build data in urlfetch.
with self.mock_urlfetch() as urlfetch:
- for i in range(3):
+ # Mock build data.
+ for i in range(2):
build_url = buildbot.CreateBuildUrl(
master_name, builder_name, build_number - i, json_api=True)
file_name = os.path.join(os.path.dirname(__file__), 'data',
@@ -78,6 +121,18 @@ class BuildFailureAnalysisPipelinesTest(testing.AppengineTestCase):
with open(file_name, 'r') as f:
urlfetch.register_handler(build_url, f.read())
+ # Mock step log.
+ step_log_url = buildbot.CreateStdioLogUrl(
+ master_name, builder_name, build_number, 'a')
+ urlfetch.register_handler(
+ step_log_url, 'error in file a/b/x.cc:89 ...')
+
+ # Mock change logs.
+ self._MockChangeLog(urlfetch, 'user1', 'some_git_hash', 8888, 'a/b/x.cc')
+ self._MockChangeLog(
+ urlfetch, 'user1', '64c72819e898e952103b63eabc12772f9640af07',
+ 8887, 'd/e/y.cc')
+
build_failure_analysis_pipelines.ScheduleAnalysisIfNeeded(
master_name, builder_name, build_number, False, 'default')

Powered by Google App Engine
This is Rietveld 408576698