# 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)