1233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang# Copyright (c) 2015 The Chromium OS Authors. All rights reserved. 2233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang# Use of this source code is governed by a BSD-style license that can be 3233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang# found in the LICENSE file. 4233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 5233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangimport os 6233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangimport shutil 7233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangimport tempfile 8233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 9233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangfrom autotest_lib.server import test 10233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 11233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangfrom native_Benchmarks_common import CLIENT_TEST_ROOT 12233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangfrom native_Benchmarks_common import run_check 13233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 14233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangfrom octane import octane 15233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangfrom vp8 import vp8 16233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 17233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang# Benchmark suites 18233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangsuites = { 19233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 'octane': octane, 20233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 'vp8': vp8, 21233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang} 22233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 23233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huangclass native_Benchmarks(test.test): 24233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang """Build and run native benchmarks""" 25233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang version = 1 26233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 27233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang def run_once(self, client, name, args): 28233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang """ 29233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang Build benchmark on the invoking machine and run it on client. 30233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 31233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang @param client: The autotest host object representing client. 32233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang @param name: The name of benchmark to run. 33233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang """ 34233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 35233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang # scratch directory on server. 36233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang scratch_srv = tempfile.mkdtemp() 37233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang try: 38233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang # scratch directory on client. 39233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang cmd = 'mkdir -p %s' % CLIENT_TEST_ROOT 40233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang err_msg = 'Unable to create %s' % CLIENT_TEST_ROOT 41233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang run_check(client, cmd, err_msg) 42233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang scratch_cli = CLIENT_TEST_ROOT 43233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang 44233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang flags = dict(i.split('=') for i in args) 45233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang results = suites[name](scratch_srv, scratch_cli, client, flags).run() 46233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang for r in results: 47233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang self.output_perf_value(**r) 48233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang finally: 49233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang if scratch_srv and os.path.isdir(scratch_srv): 50233809e1116dc7db7d024568d1abbaafd8fe5100Ting-Yuan Huang shutil.rmtree(scratch_srv) 51