You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
48 lines
1.5 KiB
# Copyright (c) 2010 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, os
|
|
|
|
from autotest_lib.client.bin import test
|
|
from autotest_lib.client.common_lib import utils
|
|
|
|
class unit_test(test.test):
|
|
"""
|
|
Unit test should simply subclass this test which handles everything.
|
|
"""
|
|
version = 1
|
|
preserve_srcdir = True
|
|
|
|
|
|
def setup(self):
|
|
os.chdir(self.srcdir)
|
|
utils.make('clean')
|
|
utils.make('all')
|
|
|
|
self.job.setup_dep(['gtest'])
|
|
|
|
def run_once(self):
|
|
dep ='gtest'
|
|
dep_dir = os.path.join(self.autodir, 'deps', dep)
|
|
self.job.install_pkg(dep, 'dep', dep_dir)
|
|
|
|
# Run the unit test, gather the results and place the gcda files for
|
|
# code coverage in the results directory.
|
|
|
|
os.chdir(self.srcdir)
|
|
result = utils.run('LD_LIBRARY_PATH=' + dep_dir +
|
|
' GCOV_PREFIX=' + self.resultsdir +
|
|
' GCOV_PREFIX_STRIP=9999 ./unit_test > ' +
|
|
self.resultsdir + '/unit_test_result.txt')
|
|
logging.debug(result.stderr)
|
|
logging.info('result: ' + self.resultsdir + '/unit_test_result.txt')
|
|
|
|
def cleanup(self):
|
|
# This is a hack - we should only need to copy back the .gcda file but
|
|
# we don't know how to access the source on the server. So copy
|
|
# everything back.
|
|
|
|
os.chdir(self.srcdir)
|
|
utils.run('cp * ' + self.resultsdir)
|