| # 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. |
| |
| import logging |
| from autotest_lib.client.bin import utils |
| from autotest_lib.client.common_lib import error |
| from autotest_lib.client.cros import kernel_config |
| from autotest_lib.client.cros.graphics.graphics_utils import GraphicsTest |
| |
| class graphics_KernelConfig(GraphicsTest): |
| """Examine a kernel build CONFIG list to verify related flags. |
| """ |
| version = 1 |
| arch = None |
| userspace_arch = None |
| |
| IS_BUILTIN = [ |
| # Sanity checks; should be present in builds as builtins. |
| ] |
| IS_MODULE = [ |
| # Sanity checks; should be present in builds as modules. |
| ] |
| IS_ENABLED = [ |
| # Sanity checks; should be enabled. |
| ] |
| IS_MISSING = [ |
| # Sanity checks; should be disabled. |
| 'DRM_KMS_FB_HELPER' |
| 'FB', |
| 'FB_CFB_COPYAREA', |
| 'FB_CFB_FILLRECT', |
| 'FB_CFB_IMAGEBLIT', |
| 'FB_CFB_REV_PIXELS_IN_BYTE', |
| 'FB_SIMPLE', |
| 'FB_SYS_COPYAREA', |
| 'FB_SYS_FOPS', |
| 'FB_SYS_FILLRECT', |
| 'FB_SYS_IMAGEBLIT', |
| 'FB_VIRTUAL' |
| ] |
| |
| def setup(self): |
| """ Test setup. """ |
| self.arch = utils.get_arch() |
| self.userspace_arch = utils.get_arch_userspace() |
| # Report the full uname for anyone reading logs. |
| logging.info('Running %s kernel, %s userspace: %s', |
| self.arch, self.userspace_arch, |
| utils.system_output('uname -a')) |
| |
| @GraphicsTest.failure_report_decorator('graphics_KernelConfig') |
| def run_once(self): |
| """ |
| The actual test that read config and check. |
| """ |
| # Load the list of kernel config variables. |
| config = kernel_config.KernelConfig() |
| config.initialize() |
| logging.debug(config._config) |
| |
| # Run the static checks. |
| map(config.has_builtin, self.IS_BUILTIN) |
| map(config.has_module, self.IS_MODULE) |
| map(config.is_enabled, self.IS_ENABLED) |
| map(config.is_missing, self.IS_MISSING) |
| |
| # Raise a failure if anything unexpected was seen. |
| if len(config.failures()): |
| raise error.TestFail((", ".join(config.failures()))) |