blob: 00df0e7a32f708be027d55c30264986caeff7386 [file] [log] [blame]
# 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 +
')')