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

Unified Diff: appengine/findit/waterfall/extractors.py

Issue 1933013003: [Findit] Extract failed output nodes from stdio log of compile step. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | appengine/findit/waterfall/failure_signal.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/waterfall/extractors.py
diff --git a/appengine/findit/waterfall/extractors.py b/appengine/findit/waterfall/extractors.py
index b0f6639c2775407366bf0aa1f22d572cc94bab4c..a79a734f3c900bb7c5f55c749c6751345ef106f0 100644
--- a/appengine/findit/waterfall/extractors.py
+++ b/appengine/findit/waterfall/extractors.py
@@ -217,6 +217,7 @@ class CompileStepExtractor(Extractor):
signal = FailureSignal()
failure_started = False
is_build_command_line = False
+ failed_output_nodes = set()
if (master_name == self.MAC_MASTER_NAME_FOR_COMPILE and
bot_name in self.IOS_BUILDER_NAMES_FOR_COMPILE):
@@ -242,6 +243,28 @@ class CompileStepExtractor(Extractor):
if line.startswith(self.FAILURE_START_LINE_PREFIX):
if not failure_started:
failure_started = True
+ line = line[len(self.FAILURE_START_LINE_PREFIX):]
+ while line:
chanli 2016/04/30 02:24:58 Is it possible that the line is like: FAILED: a.o
stgao 2016/05/01 05:12:28 In theory, this is possible. But in practice, when
+ quote_index = line.find('"')
lijeffrey 2016/04/30 03:44:25 nit: it seems since this is a temporary solution,
stgao 2016/05/01 05:12:28 This is a good idea. Done, but with additional ch
+ if quote_index < 0:
+ sub_part = line
+ remaining_part = None
+ else:
+ sub_part = line[:quote_index]
+ match_quote_index = line.find('"', quote_index + 1)
+ if match_quote_index < 0: # Unexpected format.
+ failed_output_nodes.clear()
+ break
+ failed_output_nodes.add(
+ line[quote_index + 1: match_quote_index])
+ remaining_part = line[match_quote_index + 1:]
+ line = remaining_part
+
+ for node in sub_part.split(' '):
+ node = node.strip()
+ if node:
+ failed_output_nodes.add(node)
+
is_build_command_line = True
continue
elif is_build_command_line:
@@ -270,6 +293,7 @@ class CompileStepExtractor(Extractor):
# either within the compile errors or is a ninja error.
self.ExtractFiles(line, signal)
+ signal.failed_output_nodes = sorted(failed_output_nodes)
return signal
« no previous file with comments | « no previous file | appengine/findit/waterfall/failure_signal.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698