2010-04-21 Dirk Pranke <dpranke@chromium.org>
authordpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Apr 2010 19:49:28 +0000 (19:49 +0000)
committerdpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Apr 2010 19:49:28 +0000 (19:49 +0000)
        Reviewed by Dimitri Glazkov.

        new-run-webkit-tests: fix a bug in the Chromium port where we would
        try to talk to a crashed test_shell and raise exceptions that weren't
        being caught.

        https://bugs.webkit.org/show_bug.cgi?id=37941

        * Scripts/webkitpy/layout_tests/port/chromium.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@58005 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/Scripts/webkitpy/layout_tests/port/chromium.py

index fc07651..f51ce6d 100644 (file)
@@ -1,3 +1,15 @@
+2010-04-21  Dirk Pranke  <dpranke@chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        new-run-webkit-tests: fix a bug in the Chromium port where we would
+        try to talk to a crashed test_shell and raise exceptions that weren't
+        being caught.
+
+        https://bugs.webkit.org/show_bug.cgi?id=37941
+
+        * Scripts/webkitpy/layout_tests/port/chromium.py:
+
 2010-04-21  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
 
         Unreviewed.
index e89839c..8bae2a9 100644 (file)
@@ -321,9 +321,14 @@ class ChromiumDriver(base.Driver):
             cmd += ' ' + checksum
         cmd += "\n"
 
-        self._proc.stdin.write(cmd)
-        line = self._proc.stdout.readline()
-        while line.rstrip() != "#EOF":
+        try:
+            self._proc.stdin.write(cmd)
+            line = self._proc.stdout.readline()
+        except IOError, e:
+            _log.error("IOError communicating w/ test_shell: " + str(e))
+            crash = True
+
+        while not crash and line.rstrip() != "#EOF":
             # Make sure we haven't crashed.
             if line == '' and self.poll() is not None:
                 # This is hex code 0xc000001d, which is used for abrupt
@@ -356,7 +361,11 @@ class ChromiumDriver(base.Driver):
             else:
                 error.append(line)
 
-            line = self._proc.stdout.readline()
+            try:
+                line = self._proc.stdout.readline()
+            except IOError, e:
+                _log.error("IOError while reading: " + str(e))
+                crash = True
 
         return (crash, timeout, actual_checksum, ''.join(output),
                 ''.join(error))