diff options
Diffstat (limited to 'deprecated/summarize_results.py')
-rwxr-xr-x | deprecated/summarize_results.py | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/deprecated/summarize_results.py b/deprecated/summarize_results.py deleted file mode 100755 index 67d7e9a4..00000000 --- a/deprecated/summarize_results.py +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/python2 -# -# Copyright 2010 Google Inc. All Rights Reserved. -"""Script to summarize the results of various log files.""" - -from __future__ import print_function - -__author__ = 'raymes@google.com (Raymes Khoury)' - -from cros_utils import command_executer -import os -import sys -import re - -RESULTS_DIR = 'results' -RESULTS_FILE = RESULTS_DIR + '/results.csv' - -# pylint: disable=anomalous-backslash-in-string - -class DejaGNUSummarizer(object): - """DejaGNU Summarizer Class""" - - def __int__(self): - pass - - def Matches(self, log_file): - for log_line in log_file: - if log_line.find("""tests ===""") > -1: - return True - return False - - def Summarize(self, log_file, filename): - result = '' - pass_statuses = ['PASS', 'XPASS'] - fail_statuses = ['FAIL', 'XFAIL', 'UNSUPPORTED'] - name_count = {} - for line in log_file: - line = line.strip().split(':') - if len(line) > 1 and (line[0] in pass_statuses or - line[0] in fail_statuses): - test_name = (':'.join(line[1:])).replace('\t', ' ').strip() - count = name_count.get(test_name, 0) + 1 - name_count[test_name] = count - test_name = '%s (%s)' % (test_name, str(count)) - if line[0] in pass_statuses: - test_result = 'pass' - else: - test_result = 'fail' - result += '%s\t%s\t%s\n' % (test_name, test_result, filename) - return result - - -class PerflabSummarizer(object): - """Perflab Summarizer class""" - - def __init__(self): - pass - - def Matches(self, log_file): - p = re.compile('METRIC isolated \w+') - for log_line in log_file: - if p.search(log_line): - return True - return False - - def Summarize(self, log_file, filename): - result = '' - p = re.compile("METRIC isolated (\w+) .*\['(.*?)'\]") - log_file_lines = '\n'.join(log_file) - matches = p.findall(log_file_lines) - for match in matches: - if len(match) != 2: - continue - result += '%s\t%s\t%s\n' % (match[0], match[1], filename) - return result - - -class AutoTestSummarizer(object): - """AutoTest Summarizer class""" - - def __init__(self): - pass - - def Matches(self, log_file): - for log_line in log_file: - if log_line.find("""Installing autotest on""") > -1: - return True - return False - - def Summarize(self, log_file, filename): - result = '' - pass_statuses = ['PASS'] - fail_statuses = ['FAIL'] - for line in log_file: - line = line.strip().split(' ') - if len(line) > 1 and (line[-1].strip() in pass_statuses or - line[-1].strip() in fail_statuses): - test_name = (line[0].strip()) - if line[-1].strip() in pass_statuses: - test_result = 'pass' - else: - test_result = 'fail' - result += '%s\t%s\t%s\n' % (test_name, test_result, filename) - return result - - -def Usage(): - print('Usage: %s log_file' % sys.argv[0]) - sys.exit(1) - - -def SummarizeFile(filename): - summarizers = [DejaGNUSummarizer(), AutoTestSummarizer(), PerflabSummarizer()] - inp = open(filename, 'rb') - executer = command_executer.GetCommandExecuter() - for summarizer in summarizers: - inp.seek(0) - if summarizer.Matches(inp): - executer.CopyFiles(filename, RESULTS_DIR, recursive=False) - inp.seek(0) - result = summarizer.Summarize(inp, os.path.basename(filename)) - inp.close() - return result - inp.close() - return None - - -def Main(argv): - if len(argv) != 2: - Usage() - filename = argv[1] - - executer = command_executer.GetCommandExecuter() - executer.RunCommand('mkdir -p %s' % RESULTS_DIR) - summary = SummarizeFile(filename) - if summary is not None: - output = open(RESULTS_FILE, 'a') - output.write(summary.strip() + '\n') - output.close() - return 0 - - -if __name__ == '__main__': - retval = Main(sys.argv) - sys.exit(retval) |