# Copyright 2018 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. """An interface to access the local graphics facade.""" from autotest_lib.client.common_lib import error from autotest_lib.client.cros.graphics import graphics_utils class GraphicsFacadeNative(object): """Facade to access graphics utilities for catching GPU hangs.""" def __init__(self): """Initializes the graphics facade. Graphics state checker is initialized with a dedicated function to control timing for the initial set of errors extracted from logs. """ self._graphics_state_checker = None def graphics_state_checker_initialize(self): """Create and initialize the graphics state checker object. This will establish existing errors and take a snapshot of graphics kernel memory. """ self._graphics_state_checker = graphics_utils.GraphicsStateChecker() def graphics_state_checker_finalize(self): """Throw an error on new GPU hang messages in system logs. @raises TestError: Finalize was called before initialize. """ if self._graphics_state_checker is None: raise error.TestError('Graphics state checker initialize not called.') self._graphics_state_checker.finalize()