summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaweł Hajdan, Jr <phajdan.jr@chromium.org>2014-10-29 14:08:30 +0100
committerPaweł Hajdan, Jr <phajdan.jr@chromium.org>2014-10-29 13:09:27 +0000
commit5647b45161456e01e6cec6ec63e96f870fe506cb (patch)
tree4e49553ea6bfc53151963d172f9cd89b6bb3ef81
parent2846183299cea462a13feb71d30083a0758ec92c (diff)
downloadchromium_src-5647b45161456e01e6cec6ec63e96f870fe506cb.zip
chromium_src-5647b45161456e01e6cec6ec63e96f870fe506cb.tar.gz
chromium_src-5647b45161456e01e6cec6ec63e96f870fe506cb.tar.bz2
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}
-rw-r--r--testing/buildbot/chromium.linux.json4
-rw-r--r--testing/scripts/common.py16
-rwxr-xr-xtesting/scripts/telemetry_perf_unittests.py54
-rwxr-xr-xtesting/scripts/telemetry_unittests.py12
4 files changed, 75 insertions, 11 deletions
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(),