# Copyright (c) 2015 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 os import shutil import tempfile from autotest_lib.server import test from native_Benchmarks_common import CLIENT_TEST_ROOT from native_Benchmarks_common import run_check from octane import octane from vp8 import vp8 # Benchmark suites suites = { 'octane': octane, 'vp8': vp8, } class native_Benchmarks(test.test): """Build and run native benchmarks""" version = 1 def run_once(self, client, name, args): """ Build benchmark on the invoking machine and run it on client. @param client: The autotest host object representing client. @param name: The name of benchmark to run. """ # scratch directory on server. scratch_srv = tempfile.mkdtemp() try: # scratch directory on client. cmd = 'mkdir -p %s' % CLIENT_TEST_ROOT err_msg = 'Unable to create %s' % CLIENT_TEST_ROOT run_check(client, cmd, err_msg) scratch_cli = CLIENT_TEST_ROOT flags = dict(i.split('=') for i in args) results = suites[name](scratch_srv, scratch_cli, client, flags).run() for r in results: self.output_perf_value(**r) finally: if scratch_srv and os.path.isdir(scratch_srv): shutil.rmtree(scratch_srv)