зеркало из https://github.com/mozilla/gecko-dev.git
Bug 994483 Fix running marionette tests locally and bug 1021573 Fix intermittent failure due to the server trying to bind to a socket that hasn't been released yet. r=jgriffin
This commit is contained in:
Родитель
479cea6ac1
Коммит
5737965ad2
|
@ -10,7 +10,7 @@ class TestDesktopUnits(BaseTestFrontendUnits):
|
|||
|
||||
def setUp(self):
|
||||
super(TestDesktopUnits, self).setUp()
|
||||
self.set_server_prefix("build/tests/marionette/tests/browser/components/loop/test/desktop-local/")
|
||||
self.set_server_prefix("../desktop-local/")
|
||||
|
||||
def test_units(self):
|
||||
self.check_page("index.html")
|
||||
|
|
|
@ -3,9 +3,11 @@ import threading
|
|||
import SimpleHTTPServer
|
||||
import SocketServer
|
||||
import BaseHTTPServer
|
||||
import socket
|
||||
import urllib
|
||||
import urlparse
|
||||
import os
|
||||
|
||||
PORT = 2222
|
||||
DEBUG = False
|
||||
|
||||
|
||||
|
@ -36,7 +38,9 @@ class BaseTestFrontendUnits(MarionetteTestCase):
|
|||
else:
|
||||
handler = QuietHttpRequestHandler
|
||||
|
||||
cls.server = ThreadingSimpleServer(('', PORT), handler)
|
||||
# Port 0 means to select an arbitrary unused port
|
||||
cls.server = ThreadingSimpleServer(('', 0), handler)
|
||||
cls.ip, cls.port = cls.server.server_address
|
||||
|
||||
cls.server_thread = threading.Thread(target=cls.server.serve_forever)
|
||||
cls.server_thread.daemon = False
|
||||
|
@ -61,9 +65,23 @@ class BaseTestFrontendUnits(MarionetteTestCase):
|
|||
# which we have to wait for.
|
||||
self.marionette.set_search_timeout(10000)
|
||||
|
||||
def set_server_prefix(self, srcdir_path=None):
|
||||
self.server_prefix = urlparse.urljoin("http://localhost:" + str(PORT),
|
||||
srcdir_path)
|
||||
# srcdir_path should be the directory relative to this file.
|
||||
def set_server_prefix(self, srcdir_path):
|
||||
# We may be run from a different path than topsrcdir, e.g. in the case
|
||||
# of packaged tests. If so, then we have to work out the right directory
|
||||
# for the local server.
|
||||
|
||||
# First find the top of the working directory.
|
||||
commonPath = os.path.commonprefix([__file__, os.getcwd()])
|
||||
|
||||
# Now get the relative path between the two
|
||||
relPath = os.path.relpath(os.path.dirname(__file__), commonPath)
|
||||
|
||||
relPath = urllib.pathname2url(os.path.join(relPath, srcdir_path))
|
||||
|
||||
# Finally join the relative path with the given src path
|
||||
self.server_prefix = urlparse.urljoin("http://localhost:" + str(self.port),
|
||||
relPath)
|
||||
|
||||
def check_page(self, page):
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ class TestSharedUnits(BaseTestFrontendUnits):
|
|||
|
||||
def setUp(self):
|
||||
super(TestSharedUnits, self).setUp()
|
||||
self.set_server_prefix("build/tests/marionette/tests/browser/components/loop/test/shared/")
|
||||
self.set_server_prefix(".")
|
||||
|
||||
def test_units(self):
|
||||
self.check_page("index.html")
|
||||
|
|
|
@ -10,7 +10,7 @@ class TestDesktopUnits(BaseTestFrontendUnits):
|
|||
|
||||
def setUp(self):
|
||||
super(TestDesktopUnits, self).setUp()
|
||||
self.set_server_prefix("build/tests/marionette/tests/browser/components/loop/test/standalone/")
|
||||
self.set_server_prefix("../standalone/")
|
||||
|
||||
def test_units(self):
|
||||
self.check_page("index.html")
|
||||
|
|
Загрузка…
Ссылка в новой задаче