53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
# Copyright 2016 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.
|
|
|
|
"""This class defines the ADBHost Label class."""
|
|
|
|
import common
|
|
|
|
from autotest_lib.client.common_lib.brillo import hal_utils
|
|
from autotest_lib.server.cros.dynamic_suite import constants
|
|
from autotest_lib.server.hosts import base_label
|
|
from autotest_lib.server.hosts import common_label
|
|
|
|
|
|
BOARD_FILE = 'ro.product.device'
|
|
|
|
|
|
class BoardLabel(base_label.StringPrefixLabel):
|
|
"""Determine the correct board label for the device."""
|
|
|
|
_NAME = constants.BOARD_PREFIX.rstrip(':')
|
|
|
|
# pylint: disable=missing-docstring
|
|
def generate_labels(self, host):
|
|
return [host.get_board_name()]
|
|
|
|
|
|
class CameraHalLabel(base_label.BaseLabel):
|
|
"""Determine whether a host has a camera HAL in the image."""
|
|
|
|
_NAME = 'camera-hal'
|
|
|
|
def exists(self, host):
|
|
return hal_utils.has_hal('camera', host=host)
|
|
|
|
|
|
class LoopbackDongleLabel(base_label.BaseLabel):
|
|
"""Determines if an audio loopback dongle is connected to the device."""
|
|
|
|
_NAME = 'loopback-dongle'
|
|
|
|
def exists(self, host):
|
|
results = host.run('cat /sys/class/switch/h2w/state',
|
|
ignore_status=True)
|
|
return results and '0' not in results.stdout
|
|
|
|
|
|
ADB_LABELS = [
|
|
BoardLabel(),
|
|
CameraHalLabel(),
|
|
LoopbackDongleLabel(),
|
|
common_label.OSLabel(),
|
|
]
|