summaryrefslogtreecommitdiffstats
path: root/tools/telemetry
diff options
context:
space:
mode:
authordtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-13 00:28:09 +0000
committerdtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-13 00:28:09 +0000
commite2f18c4d22601154b3974a16ccbbc04d615a28c9 (patch)
treeafd8ab65ad73f2501c5ad8172bd5ac2bdeac3fb5 /tools/telemetry
parent7481f51bacb2108d56b9aaae45a2ee280b74e258 (diff)
downloadchromium_src-e2f18c4d22601154b3974a16ccbbc04d615a28c9.zip
chromium_src-e2f18c4d22601154b3974a16ccbbc04d615a28c9.tar.gz
chromium_src-e2f18c4d22601154b3974a16ccbbc04d615a28c9.tar.bz2
[telemetry] Fix unit test failures.
1. Fix tab crash catching. It should catch WebSocketException as a tab crash. 2. Fix os.path stub behavior on Windows. It should discard path components if there's an absolute path. 3. Fix page set with invalid syntax. It had extra quote marks. BUG=None. TEST=./run_tests in tools/telemetry and tools/perf Review URL: https://codereview.chromium.org/11361196 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167270 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/telemetry')
-rw-r--r--tools/telemetry/telemetry/inspector_backend.py4
-rw-r--r--tools/telemetry/telemetry/page_runner.py8
-rw-r--r--tools/telemetry/telemetry/system_stub.py20
-rw-r--r--tools/telemetry/telemetry/temporary_http_server.py6
-rw-r--r--tools/telemetry/telemetry/websocket.py1
5 files changed, 30 insertions, 9 deletions
diff --git a/tools/telemetry/telemetry/inspector_backend.py b/tools/telemetry/telemetry/inspector_backend.py
index 83b4841..74c0d39 100644
--- a/tools/telemetry/telemetry/inspector_backend.py
+++ b/tools/telemetry/telemetry/inspector_backend.py
@@ -36,7 +36,7 @@ class InspectorBackend(object):
self._SetTimeout(timeout)
try:
data = self._socket.recv()
- except socket.error:
+ except (socket.error, websocket.WebSocketException):
if self._backend.DoesDebuggerUrlExist(self._socket_url):
return
raise tab_crash_exception.TabCrashException()
@@ -77,7 +77,7 @@ class InspectorBackend(object):
while True:
try:
data = self._socket.recv()
- except socket.error:
+ except (socket.error, websocket.WebSocketException):
if self._backend.DoesDebuggerUrlExist(self._socket_url):
raise util.TimeoutException(
"TimedOut waiting for reply. This is unusual.")
diff --git a/tools/telemetry/telemetry/page_runner.py b/tools/telemetry/telemetry/page_runner.py
index cbf47f1..f56936f 100644
--- a/tools/telemetry/telemetry/page_runner.py
+++ b/tools/telemetry/telemetry/page_runner.py
@@ -147,14 +147,14 @@ http://goto/read-src-internal, or create a new archive using --record.
return tab.runtime.Evaluate(expression)
# Wait until the form is submitted and the page completes loading.
- util.WaitFor(lambda: IsPageLoaded(), 60) # pylint: disable=W0108
+ util.WaitFor(IsPageLoaded, 60)
def PreparePage(self, page, tab, page_state, results):
parsed_url = urlparse.urlparse(page.url)
if parsed_url[0] == 'file':
- path = os.path.join(self.page_set.base_dir,
- parsed_url.netloc,
- parsed_url.path) # pylint: disable=E1101
+ path = os.path.join(
+ self.page_set.base_dir,
+ parsed_url.netloc + parsed_url.path) # pylint: disable=E1101
dirname, filename = os.path.split(path)
tab.browser.SetHTTPServerDirectory(dirname)
target_side_url = tab.browser.http_server.UrlOf(filename)
diff --git a/tools/telemetry/telemetry/system_stub.py b/tools/telemetry/telemetry/system_stub.py
index ce35e9d..1c80caa 100644
--- a/tools/telemetry/telemetry/system_stub.py
+++ b/tools/telemetry/telemetry/system_stub.py
@@ -7,6 +7,7 @@ This test allows one to test code that itself uses os, sys, and subprocess.
"""
import os
+import re
import shlex
import sys as real_sys
@@ -87,12 +88,25 @@ class OsModuleStub(object):
def exists(self, path):
return path in self.files
- def join(self, *args):
+ def join(self, *paths):
+ def IsAbsolutePath(path):
+ if self.sys.platform.startswith('win'):
+ return re.match('[a-zA-Z]:\\\\', path)
+ else:
+ return path.startswith('/')
+
+ # Per Python specification, if any component is an absolute path,
+ # discard previous components.
+ for index, path in reversed(list(enumerate(paths))):
+ if IsAbsolutePath(path):
+ paths = paths[index:]
+ break
+
if self.sys.platform.startswith('win'):
- tmp = os.path.join(*args)
+ tmp = os.path.join(*paths)
return tmp.replace('/', '\\')
else:
- tmp = os.path.join(*args)
+ tmp = os.path.join(*paths)
return tmp.replace('\\', '/')
def dirname(self, filename): # pylint: disable=R0201
diff --git a/tools/telemetry/telemetry/temporary_http_server.py b/tools/telemetry/telemetry/temporary_http_server.py
index 952f942..b10f6cd 100644
--- a/tools/telemetry/telemetry/temporary_http_server.py
+++ b/tools/telemetry/telemetry/temporary_http_server.py
@@ -7,6 +7,8 @@ import subprocess
import sys
import urlparse
+from telemetry import util
+
class TemporaryHTTPServer(object):
def __init__(self, browser_backend, path):
self._server = None
@@ -31,6 +33,10 @@ class TemporaryHTTPServer(object):
self._forwarder = browser_backend.CreateForwarder(self._host_port)
+ def IsServerUp():
+ return not socket.socket().connect_ex(('localhost', self._host_port))
+ util.WaitFor(IsServerUp, 5)
+
@property
def path(self):
return self._path
diff --git a/tools/telemetry/telemetry/websocket.py b/tools/telemetry/telemetry/websocket.py
index a057d1f..6d0cab8 100644
--- a/tools/telemetry/telemetry/websocket.py
+++ b/tools/telemetry/telemetry/websocket.py
@@ -14,3 +14,4 @@ def __init__():
__init__()
from websocket import create_connection # pylint: disable=W0611
+from websocket import WebSocketException # pylint: disable=W0611