blob: 970a993b3fb227acdc947188488b0d516263237b [file] [log] [blame]
# Copyright (c) 2013 The Chromium OS 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 logging
from autotest_lib.client.common_lib import error
from autotest_lib.server import test
from autotest_lib.server.cros import telemetry_runner
class telemetry_Benchmarks(test.test):
"""Run a telemetry benchmark."""
version = 1
def run_once(self, host=None, benchmark=None, page_sets=None):
"""Run a telemetry benchmark over a given list of page_sets.
@param host: host we are running telemetry on.
@param benchmark: benchmark we want to run.
@param page_sets: list of page sets we want to use with this benchmark.
"""
failed_page_sets = []
warned_page_sets = []
telemetry = telemetry_runner.TelemetryRunner(host)
for page_set in page_sets:
try:
telemetry.run_telemetry_benchmark(benchmark,
page_set,
keyval_writer=self)
except error.TestWarn:
logging.warn('%s exited with warning for page_set: %s',
benchmark, page_set)
warned_page_sets.append(page_set)
except error.TestFail:
logging.error('%s failed for page_set: %s', benchmark,
page_set)
failed_page_sets.append(page_set)
if failed_page_sets:
raise error.TestFail('%s failed for page_sets: %s. And warned'
' for page_sets: %s.'% (benchmark,
failed_page_sets, warned_page_sets))
if warned_page_sets:
raise error.TestWarn('%s exited with warnings for page_sets:'
' %s.'% (benchmark, warned_page_sets))