| # Copyright 2014 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, re |
| import logging |
| from autotest_lib.client.common_lib import error, utils |
| from autotest_lib.client.cros.graphics import graphics_utils |
| |
| |
| class graphics_Gbm(graphics_utils.GraphicsTest): |
| """Test the gbm implementation. |
| """ |
| version = 1 |
| preserve_srcdir = True |
| |
| def setup(self): |
| """Setup the test code.""" |
| os.chdir(self.srcdir) |
| utils.make('clean') |
| utils.make('all') |
| |
| def initialize(self): |
| super(graphics_Gbm, self).initialize() |
| |
| def cleanup(self): |
| super(graphics_Gbm, self).cleanup() |
| |
| @graphics_utils.GraphicsTest.failure_report_decorator('graphics_Gbm') |
| def run_once(self): |
| """Main body to exercise the test code.""" |
| board = utils.get_current_board() |
| if board in ['monroe', 'fizz-moblab', 'guado_moblab']: |
| # Monroe has a hardware problem requiring hard cycling. Moblab |
| # images behave odd compared to non-moblab images. |
| logging.info('Skipping test.') |
| return |
| cmd = os.path.join(self.srcdir, 'gbmtest') |
| result = utils.run( |
| cmd, |
| stderr_is_expected=False, |
| stdout_tee=utils.TEE_TO_LOGS, |
| stderr_tee=utils.TEE_TO_LOGS, |
| ignore_status=True) |
| report = re.findall(r'\[ PASSED \]', result.stdout) |
| if not report: |
| raise error.TestFail('Failed: Gbm test failed (' + result.stdout + |
| ')') |