summaryrefslogtreecommitdiff
path: root/buildscripts/promote_silent_failures.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/promote_silent_failures.py')
-rw-r--r--buildscripts/promote_silent_failures.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/buildscripts/promote_silent_failures.py b/buildscripts/promote_silent_failures.py
deleted file mode 100644
index d8d45872685..00000000000
--- a/buildscripts/promote_silent_failures.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python3
-"""Convert silent test failures into non-silent failures.
-
-Any test files with at least 2 executions in the report.json file that have a "silentfail" status,
-this script will change the outputted report to have a "fail" status instead.
-"""
-
-import collections
-import json
-import optparse
-import os
-import sys
-
-# Get relative imports to work when the package is not installed on the PYTHONPATH.
-if __name__ == "__main__" and __package__ is None:
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- from buildscripts.resmokelib.testing import report
-
-
-def read_json_file(json_file):
- """Return contents of a JSON file."""
- with open(json_file) as json_data:
- return json.load(json_data)
-
-
-def main():
- """Execute Main program."""
-
- usage = "usage: %prog [options] report.json"
- parser = optparse.OptionParser(usage=usage)
- parser.add_option(
- "-o", "--output-file", dest="outfile", default="-",
- help=("If '-', then the report file is written to stdout."
- " Any other value is treated as the output file name. By default,"
- " output is written to stdout."))
-
- (options, args) = parser.parse_args()
-
- if len(args) != 1:
- parser.error("Requires a single report.json file.")
-
- report_file_json = read_json_file(args[0])
- test_report = report.TestReport.from_dict(report_file_json)
-
- # Count number of "silentfail" per test file.
- status_dict = collections.defaultdict(int)
- for test_info in test_report.test_infos:
- if test_info.evergreen_status == "silentfail":
- status_dict[test_info.test_id] += 1
-
- # For test files with more than 1 "silentfail", convert status to "fail".
- for test_info in test_report.test_infos:
- if status_dict[test_info.test_id] >= 2:
- test_info.evergreen_status = "fail"
-
- result_report = test_report.as_dict()
- if options.outfile != "-":
- with open(options.outfile, "w") as fp:
- json.dump(result_report, fp)
- else:
- print(json.dumps(result_report))
-
-
-if __name__ == "__main__":
- main()