Bug 997770 - Allow users to explicitly input the connection timeout. Also the version of marionette_transport is updated from 0.2 to 0.3. r=mdas

This commit is contained in:
Luv Agarwal 2014-07-04 23:33:00 +02:00
parent c7cfdee5c9
commit a0610ba42d
5 changed files with 12 additions and 10 deletions

View File

@ -25,7 +25,7 @@ class B2GUpdateMarionetteClient(MarionetteTransport):
MAX_RETRIES = 24
def __init__(self, addr, port, runner):
super(B2GUpdateMarionetteClient, self).__init__(addr, port)
super(B2GUpdateMarionetteClient, self).__init__(addr, port, self.CONNECT_TIMEOUT)
self.runner = runner
def connect(self):
@ -36,7 +36,7 @@ class B2GUpdateMarionetteClient(MarionetteTransport):
"""
for i in range(self.MAX_RETRIES):
try:
MarionetteTransport.connect(self, timeout=self.CONNECT_TIMEOUT)
MarionetteTransport.connect(self)
break
except:
if i == self.MAX_RETRIES - 1:

View File

@ -449,8 +449,8 @@ class Marionette(object):
profile=None, emulator=None, sdcard=None, emulator_img=None,
emulator_binary=None, emulator_res=None, connect_to_running_emulator=False,
gecko_log=None, homedir=None, baseurl=None, no_window=False, logdir=None,
busybox=None, symbols_path=None, timeout=None, device_serial=None,
adb_path=None):
busybox=None, symbols_path=None, timeout=None, socket_timeout=360,
device_serial=None, adb_path=None):
self.host = host
self.port = self.local_port = port
self.bin = bin
@ -464,6 +464,7 @@ class Marionette(object):
self.no_window = no_window
self._test_name = None
self.timeout = timeout
self.socket_timeout=socket_timeout
self.device_serial = device_serial
if bin:
@ -520,7 +521,7 @@ class Marionette(object):
self.port = self.emulator.setup_port_forwarding(self.port)
assert(self.emulator.wait_for_port(self.port)), "Timed out waiting for port!"
self.client = MarionetteTransport(self.host, self.port)
self.client = MarionetteTransport(self.host, self.port, self.socket_timeout)
if emulator:
if busybox:

View File

@ -1,4 +1,4 @@
marionette-transport == 0.2
marionette-transport == 0.3
manifestparser
mozhttpd >= 0.5
mozinfo >= 0.7

View File

@ -18,9 +18,10 @@ class MarionetteTransport(object):
max_packet_length = 4096
connection_lost_msg = "Connection to Marionette server is lost. Check gecko.log (desktop firefox) or logcat (b2g) for errors."
def __init__(self, addr, port):
def __init__(self, addr, port, socket_timeout=360.0):
self.addr = addr
self.port = port
self.socket_timeout = socket_timeout
self.sock = None
self.traits = None
self.applicationType = None
@ -56,12 +57,12 @@ class MarionetteTransport(object):
else:
raise IOError(self.connection_lost_msg)
def connect(self, timeout=360.0):
def connect(self):
""" Connect to the server and process the hello message we expect
to receive in response.
"""
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.settimeout(timeout)
self.sock.settimeout(self.socket_timeout)
try:
self.sock.connect((self.addr, self.port))
except:

View File

@ -1,6 +1,6 @@
from setuptools import setup, find_packages
version = '0.2'
version = '0.3'
long_description = \
"""Marionette_ is a Mozilla project to enable remote automation in Gecko-based