Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Unified Diff: ppapi/native_client/tools/browser_tester/browsertester/rpclistener.py

Issue 10914053: Relocating files in the nacl repo that belong in chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/tools/browser_tester/browsertester/rpclistener.py
diff --git a/ppapi/native_client/tools/browser_tester/browsertester/rpclistener.py b/ppapi/native_client/tools/browser_tester/browsertester/rpclistener.py
new file mode 100755
index 0000000000000000000000000000000000000000..5003f1f0cec17e73a32fe3374896007753bf9a02
--- /dev/null
+++ b/ppapi/native_client/tools/browser_tester/browsertester/rpclistener.py
@@ -0,0 +1,67 @@
+#!/usr/bin/python
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+import sys
+import time
+
+
+class RPCListener(object):
+
+ def __init__(self, shutdown_callback):
+ self.shutdown_callback = shutdown_callback
+ self.prefix = '|||| '
+ self.ever_failed = False
+ self.start_time = time.time()
+
+ def Log(self, message):
+ # Display the number of milliseconds since startup.
+ # This gives us additional data for debugging bot behavior.
+ prefix = '[%6s ms] ' % int((time.time()-self.start_time)*1000) + self.prefix
+ lines = [line.rstrip() for line in message.split('\n')]
+ text = ''.join(['%s%s\n' % (prefix, line) for line in lines])
+ sys.stdout.write(text)
+
+ def TestLog(self, message):
+ self.Log(message)
+ return 'OK'
+
+ # Something went very wrong on the server side, everything is horked?
+ # Only called locally.
+ def ServerError(self, message):
+ self.Log('\n[SERVER_ERROR] %s' % (message,))
+ self.ever_failed = True
+ self._TestingDone()
+ return 'OK'
+
+ # Does nothing. Called to prevent timeouts. (The server resets the timeout
+ # every time it receives a GET request.)
+ def Ping(self):
+ return 'OK'
+
+ # This happens automatically, as long as the renderer process has not crashed.
+ def JavaScriptIsAlive(self):
+ return 'OK'
+
+ def Shutdown(self, message, passed):
+ self.Log(message)
+ # This check looks slightly backwards, but this is intentional.
+ # Everything but passed.lower() == 'true' is considered a failure. This
+ # means that if the test runner sends garbage, it will be a failure.
+ # NOTE in interactive mode this function may be called multiple times.
+ # ever_failed is designed to be set and never reset - if any of the runs
+ # fail, the an error code will be returned to the command line.
+ # In summary, the tester is biased towards failure - it should scream "FAIL"
+ # if things are not 100% correct. False positives must be avoided.
+ if passed.lower() != 'true':
+ self.ever_failed = True
+ close_browser = self._TestingDone()
+ if close_browser:
+ return 'Die, please'
+ else:
+ return 'OK'
+
+ def _TestingDone(self):
+ return self.shutdown_callback()

Powered by Google App Engine
This is Rietveld 408576698