import logging
import time
-from pylib import android_commands
from pylib import ports
from pylib.chrome_test_server_spawner import SpawningServer
+from pylib.device import device_utils
from pylib.forwarder import Forwarder
from pylib.valgrind_tools import CreateTool
# TODO(frankf): Move this to pylib/utils
class BaseTestRunner(object):
"""Base class for running tests on a single device."""
- def __init__(self, device, tool, push_deps=True, cleanup_test_files=False):
+ def __init__(self, device_serial, tool, push_deps=True,
+ cleanup_test_files=False):
"""
Args:
device: Tests will run on the device of this ID.
push_deps: If True, push all dependencies to the device.
cleanup_test_files: Whether or not to cleanup test files on device.
"""
- self.device = device
- self.adb = android_commands.AndroidCommands(device=device)
- self.tool = CreateTool(tool, self.adb)
+ self.device_serial = device_serial
+ self.device = device_utils.DeviceUtils(device_serial)
+ self.tool = CreateTool(tool, self.device)
self._http_server = None
self._forwarder_device_port = 8000
self.forwarder_base_url = ('http://localhost:%d' %
def _PushTestServerPortInfoToDevice(self):
"""Pushes the latest port information to device."""
- self.adb.SetFileContents(self.adb.GetExternalStorage() + '/' +
- NET_TEST_SERVER_PORT_INFO_FILE,
- '%d:%d' % (self.test_server_spawner_port,
- self.test_server_port))
+ self.device.old_interface.SetFileContents(
+ self.device.old_interface.GetExternalStorage() + '/' +
+ NET_TEST_SERVER_PORT_INFO_FILE,
+ '%d:%d' % (self.test_server_spawner_port, self.test_server_port))
def RunTest(self, test):
"""Runs a test. Needs to be overridden.
def SetUp(self):
"""Run once before all tests are run."""
self.InstallTestPackage()
- push_size_before = self.adb.GetPushSizeInfo()
+ push_size_before = self.device.old_interface.GetPushSizeInfo()
if self._push_deps:
logging.warning('Pushing data files to device.')
self.PushDataDeps()
- push_size_after = self.adb.GetPushSizeInfo()
+ push_size_after = self.device.old_interface.GetPushSizeInfo()
logging.warning(
'Total data: %0.3fMB' %
((push_size_after[0] - push_size_before[0]) / float(2 ** 20)))
"""Run once after all tests are run."""
self.ShutdownHelperToolsForTestSuite()
if self._cleanup_test_files:
- self.adb.RemovePushedFiles()
+ self.device.old_interface.RemovePushedFiles()
def LaunchTestHttpServer(self, document_root, port=None,
extra_config_contents=None):
def _ForwardPorts(self, port_pairs):
"""Forwards a port."""
- Forwarder.Map(port_pairs, self.adb, self.tool)
+ Forwarder.Map(port_pairs, self.device, self.tool)
def _UnmapPorts(self, port_pairs):
"""Unmap previously forwarded ports."""
for (device_port, _) in port_pairs:
- Forwarder.UnmapDevicePort(device_port, self.adb)
+ Forwarder.UnmapDevicePort(device_port, self.device)
# Deprecated: Use ForwardPorts instead.
def StartForwarder(self, port_pairs):
# request.
# TODO(dtrainor): This is not always reliable because sometimes the port
# will be left open even after the forwarder has been killed.
- if not ports.IsDevicePortUsed(self.adb, self._forwarder_device_port):
+ if not ports.IsDevicePortUsed(self.device, self._forwarder_device_port):
self._ForwardPortsForHttpServer()
def ShutdownHelperToolsForTestSuite(self):
self._ForwardPorts(
[(self.test_server_spawner_port, self.test_server_spawner_port)])
self._spawning_server = SpawningServer(self.test_server_spawner_port,
- self.adb,
+ self.device,
self.tool)
self._spawning_server.Start()
server_ready, error_msg = ports.IsHttpServerConnectable(