From 5647b45161456e01e6cec6ec63e96f870fe506cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Hajdan=2C=20Jr?= Date: Wed, 29 Oct 2014 14:08:30 +0100 Subject: Add src-side launcher for telemetry_perf_unittests Also enable it on "Linux Tests" builder. BUG=422235 R=sergiyb@chromium.org Review URL: https://codereview.chromium.org/691493002 Cr-Commit-Position: refs/heads/master@{#301822} --- testing/buildbot/chromium.linux.json | 4 +++ testing/scripts/common.py | 16 +++++++++ testing/scripts/telemetry_perf_unittests.py | 54 +++++++++++++++++++++++++++++ testing/scripts/telemetry_unittests.py | 12 +------ 4 files changed, 75 insertions(+), 11 deletions(-) create mode 100755 testing/scripts/telemetry_perf_unittests.py (limited to 'testing') diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json index e0db1ad..559ceec 100644 --- a/testing/buildbot/chromium.linux.json +++ b/testing/buildbot/chromium.linux.json @@ -97,6 +97,10 @@ { "name": "telemetry_unittests", "script": "telemetry_unittests.py" + }, + { + "name": "telemetry_perf_unittests", + "script": "telemetry_perf_unittests.py" } ] }, diff --git a/testing/scripts/common.py b/testing/scripts/common.py index 47e7fb7..1afbe6b 100644 --- a/testing/scripts/common.py +++ b/testing/scripts/common.py @@ -7,6 +7,7 @@ import contextlib import json import os import subprocess +import sys import tempfile @@ -55,6 +56,21 @@ def run_command(argv): return rc +def run_runtest(cmd_args, runtest_args): + return run_command([ + sys.executable, + os.path.join(cmd_args.paths['build'], 'scripts', 'tools', 'runit.py'), + '--show-path', + sys.executable, + os.path.join(cmd_args.paths['build'], 'scripts', 'slave', 'runtest.py'), + '--target', cmd_args.build_config_fs, + '--xvfb', + '--builder-name', cmd_args.properties['buildername'], + '--slave-name', cmd_args.properties['slavename'], + '--build-number', str(cmd_args.properties['buildnumber']), + ] + runtest_args) + + @contextlib.contextmanager def temporary_file(): fd, path = tempfile.mkstemp() diff --git a/testing/scripts/telemetry_perf_unittests.py b/testing/scripts/telemetry_perf_unittests.py new file mode 100755 index 0000000..42eb656 --- /dev/null +++ b/testing/scripts/telemetry_perf_unittests.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# 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 json +import os +import sys + + +import common + + +def main_run(args): + filter_tests = [] + if args.filter_file: + filter_tests = json.load(args.filter_file) + + with common.temporary_file() as tempfile_path: + rc = common.run_runtest(args, [ + '--annotate', 'gtest', + '--test-type', 'telemetry_perf_unittests', + '--run-python-script', + os.path.join(common.SRC_DIR, 'tools', 'perf', 'run_tests'), + '--browser', args.build_config_fs.lower(), + '--retry-limit', '3', + '--write-full-results-to', tempfile_path, + ] + filter_tests) + + with open(tempfile_path) as f: + results = json.load(f) + + parsed_results = common.parse_common_test_results(results, test_separator='.') + failures = parsed_results['unexpected_failures'] + + json.dump({ + 'valid': bool(rc <= common.MAX_FAILURES_EXIT_STATUS and + ((rc == 0) or failures)), + 'failures': failures.keys(), + }, args.output) + + return rc + + +def main_compile_targets(args): + json.dump(['chrome'], args.output) + + +if __name__ == '__main__': + funcs = { + 'run': main_run, + 'compile_targets': main_compile_targets, + } + sys.exit(common.run_script(sys.argv[1:], funcs)) diff --git a/testing/scripts/telemetry_unittests.py b/testing/scripts/telemetry_unittests.py index 2c68063..50af0c0 100755 --- a/testing/scripts/telemetry_unittests.py +++ b/testing/scripts/telemetry_unittests.py @@ -17,19 +17,9 @@ def main_run(args): filter_tests = json.load(args.filter_file) with common.temporary_file() as tempfile_path: - rc = common.run_command([ - sys.executable, - os.path.join(args.paths['build'], 'scripts', 'tools', 'runit.py'), - '--show-path', - sys.executable, - os.path.join(args.paths['build'], 'scripts', 'slave', 'runtest.py'), - '--target', args.build_config_fs, - '--xvfb', + rc = common.run_runtest(args, [ '--annotate', 'gtest', '--test-type', 'telemetry_unittests', - '--builder-name', args.properties['buildername'], - '--slave-name', args.properties['slavename'], - '--build-number', str(args.properties['buildnumber']), '--run-python-script', os.path.join(common.SRC_DIR, 'tools', 'telemetry', 'run_tests'), '--browser', args.build_config_fs.lower(), -- cgit v1.1