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

Unified Diff: tools/foozzie/v8_foozzie.py

Issue 2620343005: [foozzie] Improve failure state deduplication (Closed)
Patch Set: Restrict hash to 3 digits to avoid possible duplicate explosion. Created 3 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
« no previous file with comments | « tools/foozzie/testdata/test_d8_3.py ('k') | tools/foozzie/v8_foozzie_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/foozzie/v8_foozzie.py
diff --git a/tools/foozzie/v8_foozzie.py b/tools/foozzie/v8_foozzie.py
index 34dc86c012278fcbb093c08276c740392d08976c..04a7bbe577bf61e63a7c8ab8b2821fcb9e6ed255 100755
--- a/tools/foozzie/v8_foozzie.py
+++ b/tools/foozzie/v8_foozzie.py
@@ -37,6 +37,10 @@ TIMEOUT = 3
RETURN_PASS = 0
RETURN_FAIL = 2
+# The number of hex digits used from the hash of the original source file path.
+# Keep the number small to avoid duplicate explosion.
+SOURCE_HASH_LENGTH = 3
+
BASE_PATH = os.path.dirname(os.path.abspath(__file__))
PREAMBLE = [
os.path.join(BASE_PATH, 'v8_mock.js'),
@@ -202,6 +206,8 @@ def main():
)
# Get metadata.
+ # TODO(machenbach): We probably don't need the metadata file anymore
+ # now that the metadata is printed in the test cases.
with open(options.meta_data_path) as f:
metadata = json.load(f)
@@ -242,17 +248,16 @@ def main():
if fail_bailout(second_config_output, suppress.ignore_by_output2):
return RETURN_FAIL
- difference = suppress.diff(
+ difference, source = suppress.diff(
first_config_output.stdout, second_config_output.stdout)
if difference:
# The first three entries will be parsed by clusterfuzz. Format changes
# will require changes on the clusterfuzz side.
first_config_label = '%s,%s' % (options.first_arch, options.first_config)
second_config_label = '%s,%s' % (options.second_arch, options.second_config)
- hsh = lambda x: hashlib.sha1(x).hexdigest()[:8]
print FAILURE_TEMPLATE % dict(
configs='%s:%s' % (first_config_label, second_config_label),
- sources=','.join(map(hsh, metadata['sources'])),
+ sources=hashlib.sha1(source).hexdigest()[:SOURCE_HASH_LENGTH],
suppression='', # We can't tie bugs to differences.
first_config_label=first_config_label,
second_config_label=second_config_label,
« no previous file with comments | « tools/foozzie/testdata/test_d8_3.py ('k') | tools/foozzie/v8_foozzie_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698