50 lines
2.0 KiB
Python
50 lines
2.0 KiB
Python
# Copyright (c) 2017 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 os.path
|
|
|
|
from autotest_lib.server import autotest
|
|
from autotest_lib.server import test
|
|
|
|
|
|
class telemetry_UnitTestsServer(test.test):
|
|
"""Runs the telemetry_UnitTests client tests with some extra setup."""
|
|
version = 1
|
|
|
|
# The .boto file needs to be copied into the client (VM) so that the tests
|
|
# can run. The host boto file
|
|
LOCAL_BOTO_FILE = os.path.join(os.getenv('HOME'), '.boto')
|
|
CLIENT_BOTO_FILE = '/home/chromeos-test/.boto'
|
|
|
|
def initialize(self, host, copy_boto_file=False):
|
|
if copy_boto_file:
|
|
# Copy ~/.boto from the local file system to the client. This is
|
|
# needed for the telemetry tests to run there.
|
|
logging.info('Creating client directory %s',
|
|
os.path.dirname(self.CLIENT_BOTO_FILE))
|
|
host.run('mkdir -p %s' % os.path.dirname(self.CLIENT_BOTO_FILE))
|
|
|
|
logging.info('Copying local %s to client %s', self.LOCAL_BOTO_FILE,
|
|
self.CLIENT_BOTO_FILE)
|
|
assert(os.path.exists(self.LOCAL_BOTO_FILE))
|
|
host.send_file(self.LOCAL_BOTO_FILE, self.CLIENT_BOTO_FILE)
|
|
|
|
def cleanup(self, host, copy_boto_file=False):
|
|
if copy_boto_file:
|
|
# Clear the copied .boto file from the client, since it should no
|
|
# longer be useful.
|
|
logging.info('Clearing client %s', self.CLIENT_BOTO_FILE)
|
|
host.run('rm %s' % self.CLIENT_BOTO_FILE)
|
|
|
|
def run_once(self, host, use_packaging, browser_type, unit_tests,
|
|
perf_tests):
|
|
# Otherwise we do nothing but run the client side tests.
|
|
client_at = autotest.Autotest(host)
|
|
client_at.run_test(
|
|
'telemetry_UnitTests', host=host, use_packaging=use_packaging,
|
|
browser_type=browser_type, unit_tests=unit_tests,
|
|
perf_tests=perf_tests)
|