# 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 logging import os import StringIO SERVER_TEST_ROOT = os.path.dirname(__file__) CLIENT_TEST_ROOT = '/usr/local/autotest/tests/native_Benchmarks' def run_check(host, cmd, err_msg): """Run command on a host object. It checks and logs if error occurred. @param host: the host object @param cmd: the command to run @param err_msg: what to print when error occurred. @return: stdout of the cmd. """ logging.info('(%s) Running: %s', host, cmd) stdout = StringIO.StringIO() stderr = StringIO.StringIO() try: result = host.run(cmd, stdout_tee=stdout, stderr_tee=stderr) except: logging.info('%s:\n%s\n%s\n', err_msg, stdout.getvalue(), stderr.getvalue()) raise finally: stdout_str = stdout.getvalue() stdout.close() stderr.close() return stdout_str def rcp_check(client, src, dst, err_msg): """Copy src on the running machine to dst on client. It checks and logs if error occurred. @param client: a host object representing client. @param src: path on the running machine. @param dst: path on client. @param err_msg: what to print when error occurred. """ logging.info('Copying: %s -> %s', src, dst) try: client.send_file(src, dst) except: logging.info('%s: %s %s', err_msg, src, dst) raise def def_flag(d, k, v): """Define a flag: k=v in d Warn if k is already in d. @param d: the flag dictionary @param k: key @param v: value """ if k in d: logging.info('WARNING: Overriding flag %s: from %s to %s', k, d[k], v) d[k] = v