| # Copyright (c) 2012 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. |
| |
| class FAFTClientAttribute(object): |
| """Class that tests platform name and gives client machine attributes. |
| |
| Class attributes: |
| broken_warm_reset: boolean, True if warm_reset GPIO is not supported. |
| False otherwise. |
| broken_rec_mode: boolean, True if rec_mode GPIO is not supported. |
| False otherwise. |
| chrome_ec: boolean, True if ec is developed by chrome team. |
| False otherwise. |
| has_lid: boolean, True if the device has a lid. False otherwise. |
| has_keyboard: boolean, True if the device has a built in keyboard. |
| False otherwise. |
| ec_capability: list, specifies ec capability list. |
| gbb_version: float, GBB version. |
| wp_voltage: string, specifies write protect pin voltage. |
| key_matrix_layout: int, specifies which keyboard layout needs to be used |
| for testing. |
| key_checker: array of keycodes. Used by FAFTSetup test keyboard_checker |
| routine to verify the correct keystrokes. |
| key_checker_strict: array of keycodes. Used by FAFTSetup test |
| strict_keyboard_checker routine to verify the correct keystrokes. |
| """ |
| version = 1 |
| |
| # Default settings |
| broken_warm_reset = False |
| broken_rec_mode = False |
| chrome_ec = False |
| dark_resume_capable = False |
| has_lid = True |
| has_keyboard = True |
| keyboard_dev = True |
| long_rec_combo = False |
| ec_capability = list() |
| gbb_version = 1.1 |
| wp_voltage = 'pp1800' |
| key_matrix_layout = 0 |
| key_checker = [[0x29, 'press'], |
| [0x32, 'press'], |
| [0x32, 'release'], |
| [0x29, 'release'], |
| [0x28, 'press'], |
| [0x28, 'release']] |
| key_checker_strict = [[0x29, 'press'], |
| [0x29, 'release'], |
| [0x32, 'press'], |
| [0x32, 'release'], |
| [0x28, 'press'], |
| [0x28, 'release'], |
| [0x61, 'press'], |
| [0x61, 'release']] |
| |
| def __init__(self, platform): |
| """Initialized. Set up platform-dependent attributes. |
| |
| Args: |
| platform: Platform name returned by FAFT client. |
| """ |
| self.platform = platform |
| |
| # Set 'broken_warm_reset' |
| if platform in ['Parrot', 'Butterfly', 'Stout']: |
| self.broken_warm_reset = True |
| |
| # Set 'broken_rec_mode' for Stout because it does not have rec_mode GPIO |
| if platform in ['Stout']: |
| self.broken_rec_mode = True |
| |
| # Set 'chrome_ec' |
| if platform in ['Link', 'Snow', 'Spring']: |
| self.chrome_ec = True |
| |
| # Set 'dark_resume_capable' |
| if platform in ['Butterfly', 'Link', 'Parrot']: |
| self.dark_resume_capable = True |
| |
| # Set 'has_lid' |
| if platform in ['Stumpy', 'Kiev']: |
| self.has_lid = False |
| |
| # Set 'has_keyboard' |
| if platform in ['Stumpy', 'Kiev']: |
| self.has_keyboard = False |
| |
| # Set 'keyboard_dev' |
| if platform in ['Aebl', 'Alex', 'Kaen', 'Kiev', 'Lumpy', 'Mario', |
| 'Seaboard', 'Stumpy', 'ZGB']: |
| self.keyboard_dev = False |
| |
| # Set 'long_rec_combo' |
| if platform in ['Link']: |
| self.long_rec_combo = True |
| |
| # Set 'ec_capability' |
| if platform in ['Link']: |
| self.ec_capability = ['adc_ectemp', 'battery', 'charging', |
| 'keyboard', 'lid', 'x86', 'thermal', |
| 'usb', 'peci'] |
| elif platform in ['Snow', 'Spring']: |
| self.ec_capability = ['battery', 'keyboard', 'arm'] |
| |
| # Set 'gbb_version' |
| if platform in ['Alex', 'Mario', 'ZGB']: |
| self.gbb_version = 1.0 |
| |
| # Set 'wp_voltage' |
| if platform in ['Link']: |
| self.wp_voltage = 'pp3300' |
| |
| # Set 'key_matrix_layout' |
| if platform in ['Parrot']: |
| self.key_matrix_layout = 1 |
| self.key_checker[4] = [0x47, 'press'] |
| self.key_checker[5] = [0x47, 'release'] |
| |
| # Set 'key_matrix_layout' |
| if platform in ['Stout']: |
| self.key_matrix_layout = 2 |
| self.key_checker[4] = [0x43, 'press'] |
| self.key_checker[5] = [0x43, 'release'] |