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