You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
4 months ago
|
# Copyright 2019 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
|
||
|
|
||
|
_ERROR_PREFIX = 'CTS Test Precondition Failed'
|
||
|
|
||
|
def bluetooth(hosts):
|
||
|
"""Check for missing bluetooth hardware.
|
||
|
"""
|
||
|
# TODO(ianrlee): Reenable, once a nice check is found in b/148621587.
|
||
|
# for host in hosts:
|
||
|
# output = host.run('hcitool dev').stdout
|
||
|
# lines = output.splitlines()
|
||
|
# if len(lines) < 2 or not lines[0].startswith('Devices:'):
|
||
|
# return False, '%s: Bluetooth device is missing.'\
|
||
|
# 'Stdout of the command "hcitool dev"'\
|
||
|
# 'on host %s was %s' % (_ERROR_PREFIX, host, output)
|
||
|
return True, ''
|
||
|
|
||
|
|
||
|
def region_us(hosts):
|
||
|
"""Check that region is set to "us".
|
||
|
"""
|
||
|
for host in hosts:
|
||
|
output = host.run('vpd -g region', ignore_status=True).stdout
|
||
|
if output not in ['us', '']:
|
||
|
return False, '%s: Region is not "us" or empty. '\
|
||
|
'STDOUT of the command "vpd -l '\
|
||
|
'region" on host %s was %s'\
|
||
|
% (_ERROR_PREFIX, host, output)
|
||
|
return True, ''
|
||
|
|
||
|
prerequisite_map = {
|
||
|
'bluetooth': bluetooth,
|
||
|
'region_us': region_us,
|
||
|
}
|
||
|
|
||
|
def check(prereq, hosts):
|
||
|
"""Execute the prerequisite check.
|
||
|
|
||
|
@return boolean indicating if check passes.
|
||
|
@return string error message if check fails.
|
||
|
"""
|
||
|
if prereq not in prerequisite_map:
|
||
|
logging.info('%s is not a valid prerequisite.', prereq)
|
||
|
return True, ''
|
||
|
return prerequisite_map[prereq](hosts)
|