| # Copyright (c) 2013 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 os |
| import sys |
| from autotest_lib.client.bin import test, utils |
| |
| |
| _PLATFORM_MAPPINGS = {'daisy': 'snow', |
| 'daisy_spring': 'spring', |
| 'x86-alex': 'alex', |
| 'x86-mario': 'mario', |
| 'x86-zgb': 'zgb'} |
| |
| |
| class platform_GesturesRegressionTest(test.test): |
| """ Wrapper of regression test of gestures library. |
| |
| This test takes advantage of autotest framework to execute the touchtests, |
| i.e. regression test of gestures library, and store results of the test |
| per build(as one of BVTs) for us to keep track of patches of gestures |
| library and regression tests, and their score changes accordingly. |
| """ |
| version = 1 |
| |
| def setup(self): |
| self.job.setup_dep(['touchpad-tests']) |
| |
| def run_once(self): |
| """ Run the regression test and collect the results. |
| """ |
| board = utils.get_current_board() |
| platform = _PLATFORM_MAPPINGS.get(board, board) |
| |
| # find paths for touchpad tests |
| root = os.path.join(self.autodir, 'deps', 'touchpad-tests') |
| framework_dir = os.path.join(root, 'framework') |
| tests_dir = os.path.join(root, 'tests') |
| |
| # create test runner |
| sys.path.append(framework_dir) |
| sys.path.append(root) |
| from test_runner import ParallelTestRunner |
| runner = ParallelTestRunner(tests_dir) |
| |
| # run all tests for this platform and extract results |
| results = runner.RunAll('%s*/*' % platform, verbose=True) |
| # TODO(dennisjeffrey): Remove all uses of self.test_results below, |
| # including the call to self.write_perf_keyval(), once we're ready to |
| # switch over completely from perf keyvals to output_perf_value(). |
| self.test_results = {} |
| for key, value in results.items(): |
| score = value['score'] |
| not_integer = isinstance(score, bool) or not isinstance(score, int) |
| if not_integer and not isinstance(score, float): |
| score = 0.0 |
| self.test_results[key.replace('/', '-')] = score |
| self.output_perf_value(key.replace('/', '-'), score, 'points') |
| |
| # write converted test results out |
| if self.test_results: |
| self.write_perf_keyval(self.test_results) |