| Index: build/android/pylib/run_tests_helper.py
|
| diff --git a/build/android/pylib/run_tests_helper.py b/build/android/pylib/run_tests_helper.py
|
| index 6a3937aa77749c0b571be890a4ac59574f346686..54bf91e0d23a66dd7387c1709703d5e06a6bb775 100644
|
| --- a/build/android/pylib/run_tests_helper.py
|
| +++ b/build/android/pylib/run_tests_helper.py
|
| @@ -2,49 +2,21 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| -"""Helper functions common to native test runners."""
|
| +"""Helper functions common to native, java and python test runners."""
|
|
|
| +import contextlib
|
| +import fcntl
|
| +import httplib
|
| import logging
|
| import optparse
|
| import os
|
| +import re
|
| +import socket
|
| import subprocess
|
| import sys
|
| +import traceback
|
|
|
| -# TODO(michaelbai): Move constant definitions like below to a common file.
|
| -FORWARDER_PATH = '/data/local/tmp/forwarder'
|
| -
|
| -CHROME_DIR = os.path.abspath(os.path.join(sys.path[0], '..', '..'))
|
| -
|
| -
|
| -def IsRunningAsBuildbot():
|
| - """Returns True if we are currently running on buildbot; False otherwise."""
|
| - return bool(os.getenv('BUILDBOT_BUILDERNAME'))
|
| -
|
| -
|
| -def ReportBuildbotLink(label, url):
|
| - """Adds a link with name |label| linking to |url| to current buildbot step.
|
| -
|
| - Args:
|
| - label: A string with the name of the label.
|
| - url: A string of the URL.
|
| - """
|
| - if IsRunningAsBuildbot():
|
| - print '@@@STEP_LINK@%s@%s@@@' % (label, url)
|
| -
|
| -
|
| -def ReportBuildbotMsg(msg):
|
| - """Appends |msg| to the current buildbot step text.
|
| -
|
| - Args:
|
| - msg: String to be appended.
|
| - """
|
| - if IsRunningAsBuildbot():
|
| - print '@@@STEP_TEXT@%s@@@' % msg
|
| -
|
| -def ReportBuildbotError():
|
| - """Marks the current step as failed."""
|
| - if IsRunningAsBuildbot():
|
| - print '@@@STEP_FAILURE@@@'
|
| +import cmd_helper
|
|
|
|
|
| def GetExpectations(file_name):
|
| @@ -63,71 +35,3 @@ def SetLogLevel(verbose_count):
|
| elif verbose_count >= 2:
|
| log_level = logging.DEBUG
|
| logging.getLogger().setLevel(log_level)
|
| -
|
| -
|
| -def CreateTestRunnerOptionParser(usage=None, default_timeout=60):
|
| - """Returns a new OptionParser with arguments applicable to all tests."""
|
| - option_parser = optparse.OptionParser(usage=usage)
|
| - option_parser.add_option('-t', dest='timeout',
|
| - help='Timeout to wait for each test',
|
| - type='int',
|
| - default=default_timeout)
|
| - option_parser.add_option('-c', dest='cleanup_test_files',
|
| - help='Cleanup test files on the device after run',
|
| - action='store_true',
|
| - default=False)
|
| - option_parser.add_option('-v',
|
| - '--verbose',
|
| - dest='verbose_count',
|
| - default=0,
|
| - action='count',
|
| - help='Verbose level (multiple times for more)')
|
| - option_parser.add_option('--tool',
|
| - dest='tool',
|
| - help='Run the test under a tool '
|
| - '(use --tool help to list them)')
|
| - return option_parser
|
| -
|
| -
|
| -def ForwardDevicePorts(adb, ports, host_name='127.0.0.1'):
|
| - """Forwards a TCP port on the device back to the host.
|
| -
|
| - Works like adb forward, but in reverse.
|
| -
|
| - Args:
|
| - adb: Instance of AndroidCommands for talking to the device.
|
| - ports: A list of tuples (device_port, host_port) to forward.
|
| - host_name: Optional. Address to forward to, must be addressable from the
|
| - host machine. Usually this is omitted and loopback is used.
|
| -
|
| - Returns:
|
| - subprocess instance connected to the forwarder process on the device.
|
| - """
|
| - adb.PushIfNeeded(
|
| - os.path.join(CHROME_DIR, 'out', 'Release', 'forwarder'), FORWARDER_PATH)
|
| - forward_string = ['%d:%d:%s' %
|
| - (device, host, host_name) for device, host in ports]
|
| - logging.info("Forwarding ports: %s" % (forward_string))
|
| -
|
| - return subprocess.Popen(
|
| - ['adb', '-s', adb._adb.GetSerialNumber(),
|
| - 'shell', '%s -D %s' % (FORWARDER_PATH, ' '.join(forward_string))])
|
| -
|
| -
|
| -def IsDevicePortUsed(adb, device_port):
|
| - """Checks whether the specified device port is used or not.
|
| -
|
| - Args:
|
| - adb: Instance of AndroidCommands for talking to the device.
|
| - device_port: Port on device we want to check.
|
| -
|
| - Returns:
|
| - True if the port on device is already used, otherwise returns False.
|
| - """
|
| - base_url = '127.0.0.1:%d' % device_port
|
| - netstat_results = adb.RunShellCommand('netstat')
|
| - for single_connect in netstat_results:
|
| - # Column 3 is the local address which we want to check with.
|
| - if single_connect.split()[3] == base_url:
|
| - return True
|
| - return False
|
|
|