1# Copyright 2018 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import logging 6from autotest_lib.client.bin import utils 7from autotest_lib.client.common_lib import error 8from autotest_lib.client.cros import kernel_config 9from autotest_lib.client.cros.graphics.graphics_utils import GraphicsTest 10 11class graphics_KernelConfig(GraphicsTest): 12 """Examine a kernel build CONFIG list to verify related flags. 13 """ 14 version = 1 15 arch = None 16 userspace_arch = None 17 18 IS_BUILTIN = [ 19 # Sanity checks; should be present in builds as builtins. 20 ] 21 IS_MODULE = [ 22 # Sanity checks; should be present in builds as modules. 23 ] 24 IS_ENABLED = [ 25 # Sanity checks; should be enabled. 26 ] 27 IS_MISSING = [ 28 # Sanity checks; should be disabled. 29 'DRM_KMS_FB_HELPER' 30 'FB', 31 'FB_CFB_COPYAREA', 32 'FB_CFB_FILLRECT', 33 'FB_CFB_IMAGEBLIT', 34 'FB_CFB_REV_PIXELS_IN_BYTE', 35 'FB_SIMPLE', 36 'FB_SYS_COPYAREA', 37 'FB_SYS_FOPS', 38 'FB_SYS_FILLRECT', 39 'FB_SYS_IMAGEBLIT', 40 'FB_VIRTUAL' 41 ] 42 43 def setup(self): 44 """ Test setup. """ 45 self.arch = utils.get_arch() 46 self.userspace_arch = utils.get_arch_userspace() 47 # Report the full uname for anyone reading logs. 48 logging.info('Running %s kernel, %s userspace: %s', 49 self.arch, self.userspace_arch, 50 utils.system_output('uname -a')) 51 52 @GraphicsTest.failure_report_decorator('graphics_KernelConfig') 53 def run_once(self): 54 """ 55 The actual test that read config and check. 56 """ 57 # Load the list of kernel config variables. 58 config = kernel_config.KernelConfig() 59 config.initialize() 60 logging.debug(config._config) 61 62 # Run the static checks. 63 map(config.has_builtin, self.IS_BUILTIN) 64 map(config.has_module, self.IS_MODULE) 65 map(config.is_enabled, self.IS_ENABLED) 66 map(config.is_missing, self.IS_MISSING) 67 68 # Raise a failure if anything unexpected was seen. 69 if len(config.failures()): 70 raise error.TestFail((", ".join(config.failures()))) 71