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

# 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)