# 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