diff options
author | dtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-13 00:28:09 +0000 |
---|---|---|
committer | dtu@chromium.org <dtu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-13 00:28:09 +0000 |
commit | e2f18c4d22601154b3974a16ccbbc04d615a28c9 (patch) | |
tree | afd8ab65ad73f2501c5ad8172bd5ac2bdeac3fb5 /tools/telemetry | |
parent | 7481f51bacb2108d56b9aaae45a2ee280b74e258 (diff) | |
download | chromium_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.py | 4 | ||||
-rw-r--r-- | tools/telemetry/telemetry/page_runner.py | 8 | ||||
-rw-r--r-- | tools/telemetry/telemetry/system_stub.py | 20 | ||||
-rw-r--r-- | tools/telemetry/telemetry/temporary_http_server.py | 6 | ||||
-rw-r--r-- | tools/telemetry/telemetry/websocket.py | 1 |
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 |