blob: d3ea0a673dd402fe92bd9db3b0e178396b8e9ee6 [file] [log] [blame]
"""Base class for automated android tests."""
from mobly import base_test
from mobly import logger
from mobly.controllers import android_device
from mobly.controllers.android_device_lib import adb
ANDROID_SNIPPET_PACKAGE = 'com.google.android.test'
class AndroidBaseTest(base_test.BaseTestClass):
def log_bt_stack_conf(self, device):
try:
bt_stack_conf = device.adb.shell(['cat', '/etc/bluetooth/bt_stack.conf'])
except adb.AdbError:
device.log.debug('No /etc/bluetooth/bt_stack.conf file found on device.')
else:
device.log.debug('Content of /etc/bluetooth/bt_stack.conf: %s',
bt_stack_conf)
def setup_class(self):
# Registering android_device controller module, and declaring that the test
# requires at least two Android devices.
self.ads = self.register_controller(android_device, min_number=2)
self.dut_a = self.ads[0]
self.dut_b = self.ads[1]
self.dut_a.load_snippet('android', ANDROID_SNIPPET_PACKAGE)
self.dut_b.load_snippet('android', ANDROID_SNIPPET_PACKAGE)
self.log_bt_stack_conf(self.dut_a)
self.log_bt_stack_conf(self.dut_b)
def on_fail(self, record):
"""Only executed after a test fails.
Collect debug info here.
Args:
record: a copy of the test result record of the test.
"""
begin_time = logger.epoch_to_log_line_timestamp(record.begin_time)
android_device.take_bug_reports([self.dut_a, self.dut_b], record.test_name,
begin_time)