# 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(), ]