| Index: testing/scripts/common.py
|
| diff --git a/testing/scripts/common.py b/testing/scripts/common.py
|
| deleted file mode 100644
|
| index 92ad6882ec956d6d0342091f76d22c57fb7c005e..0000000000000000000000000000000000000000
|
| --- a/testing/scripts/common.py
|
| +++ /dev/null
|
| @@ -1,117 +0,0 @@
|
| -# Copyright 2014 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import argparse
|
| -import contextlib
|
| -import json
|
| -import os
|
| -import subprocess
|
| -import tempfile
|
| -
|
| -
|
| -SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
|
| -SRC_DIR = os.path.abspath(
|
| - os.path.join(SCRIPT_DIR, os.path.pardir, os.path.pardir))
|
| -
|
| -
|
| -# run-webkit-tests returns the number of failures as the return
|
| -# code, but caps the return code at 101 to avoid overflow or colliding
|
| -# with reserved values from the shell.
|
| -MAX_FAILURES_EXIT_STATUS = 101
|
| -
|
| -
|
| -def run_script(argv, funcs):
|
| - def parse_json(path):
|
| - with open(path) as f:
|
| - return json.load(f)
|
| - parser = argparse.ArgumentParser()
|
| - # TODO(phajdan.jr): Make build-config-fs required after passing it in recipe.
|
| - parser.add_argument('--build-config-fs')
|
| - parser.add_argument('--paths', type=parse_json, default={})
|
| - parser.add_argument('--properties', type=parse_json, default={})
|
| -
|
| - subparsers = parser.add_subparsers()
|
| -
|
| - run_parser = subparsers.add_parser('run')
|
| - run_parser.add_argument(
|
| - '--output', type=argparse.FileType('w'), required=True)
|
| - run_parser.add_argument('--filter-file', type=argparse.FileType('r'))
|
| - run_parser.set_defaults(func=funcs['run'])
|
| -
|
| - run_parser = subparsers.add_parser('compile_targets')
|
| - run_parser.add_argument(
|
| - '--output', type=argparse.FileType('w'), required=True)
|
| - run_parser.set_defaults(func=funcs['compile_targets'])
|
| -
|
| - args = parser.parse_args(argv)
|
| - return args.func(args)
|
| -
|
| -
|
| -def run_command(argv):
|
| - print 'Running %r' % argv
|
| - rc = subprocess.call(argv)
|
| - print 'Command %r returned exit code %d' % (argv, rc)
|
| - return rc
|
| -
|
| -
|
| -@contextlib.contextmanager
|
| -def temporary_file():
|
| - fd, path = tempfile.mkstemp()
|
| - os.close(fd)
|
| - try:
|
| - yield path
|
| - finally:
|
| - os.remove(path)
|
| -
|
| -
|
| -def parse_common_test_results(json_results):
|
| - def convert_trie_to_flat_paths(trie, prefix=None):
|
| - # Also see webkitpy.layout_tests.layout_package.json_results_generator
|
| - result = {}
|
| - for name, data in trie.iteritems():
|
| - if prefix:
|
| - name = prefix + '/' + name
|
| - if len(data) and not 'actual' in data and not 'expected' in data:
|
| - result.update(convert_trie_to_flat_paths(data, name))
|
| - else:
|
| - result[name] = data
|
| - return result
|
| -
|
| - results = {
|
| - 'passes': {},
|
| - 'unexpected_passes': {},
|
| - 'failures': {},
|
| - 'unexpected_failures': {},
|
| - 'flakes': {},
|
| - 'unexpected_flakes': {},
|
| - }
|
| -
|
| - # TODO(dpranke): crbug.com/357866 - we should simplify the handling of
|
| - # both the return code and parsing the actual results, below.
|
| -
|
| - passing_statuses = ('PASS', 'SLOW', 'NEEDSREBASELINE',
|
| - 'NEEDSMANUALREBASELINE')
|
| -
|
| - for test, result in convert_trie_to_flat_paths(
|
| - json_results['tests']).iteritems():
|
| - key = 'unexpected_' if result.get('is_unexpected') else ''
|
| - data = result['actual']
|
| - actual_results = data.split()
|
| - last_result = actual_results[-1]
|
| - expected_results = result['expected'].split()
|
| -
|
| - if (len(actual_results) > 1 and
|
| - (last_result in expected_results or last_result in passing_statuses)):
|
| - key += 'flakes'
|
| - elif last_result in passing_statuses:
|
| - key += 'passes'
|
| - # TODO(dpranke): crbug.com/357867 ... Why are we assigning result
|
| - # instead of actual_result here. Do we even need these things to be
|
| - # hashes, or just lists?
|
| - data = result
|
| - else:
|
| - key += 'failures'
|
| - results[key][test] = data
|
| -
|
| - return results
|
|
|