Diff
Modified: trunk/Tools/ChangeLog (119307 => 119308)
--- trunk/Tools/ChangeLog 2012-06-02 01:38:39 UTC (rev 119307)
+++ trunk/Tools/ChangeLog 2012-06-02 02:09:12 UTC (rev 119308)
@@ -1,3 +1,27 @@
+2012-06-01 Dirk Pranke <[email protected]>
+
+ NRWT seems to leak (more?) temp dirs
+ https://bugs.webkit.org/show_bug.cgi?id=88126
+
+ Re-land r119297 with chromium fix (weren't calling the
+ super() method if not in --test-shell mode in start().
+ Add unit tests to chromium_unittest as well to check.
+
+ * Scripts/webkitpy/layout_tests/port/chromium.py:
+ (ChromiumDriver.start):
+ * Scripts/webkitpy/layout_tests/port/webkit.py:
+ (WebKitDriver.__del__):
+ (WebKitDriver._start):
+ (WebKitDriver.run_test):
+ * Scripts/webkitpy/layout_tests/port/webkit_unittest.py:
+ (WebKitDriverTest.test_check_for_driver_crash):
+ (WebKitDriverTest.test_stop_cleans_up_properly):
+ (WebKitDriverTest):
+ (WebKitDriverTest.test_two_starts_cleans_up_properly):
+ * Scripts/webkitpy/layout_tests/port/chromium_unittest.py:
+ (ChromiumDriverTest.test_stop_cleans_up_properly):
+ (ChromiumDriverTest.test_two_starts_cleans_up_properly):
+
2012-06-01 Tim Horton <[email protected]>
Lots of "failed download-built-product" on Apple bots
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py (119307 => 119308)
--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py 2012-06-02 01:38:39 UTC (rev 119307)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py 2012-06-02 02:09:12 UTC (rev 119308)
@@ -667,6 +667,9 @@
test_time=run_time, timeout=timeout, error=error)
def start(self, pixel_tests, per_test_args):
+ if not self._test_shell:
+ return super(ChromiumDriver, self).start(pixel_tests, per_test_args)
+
if not self._proc:
self._start(pixel_tests, per_test_args)
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py (119307 => 119308)
--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py 2012-06-02 01:38:39 UTC (rev 119307)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py 2012-06-02 02:09:12 UTC (rev 119308)
@@ -160,7 +160,22 @@
driver2.stop()
self.assertTrue(time.time() - start_time < 20)
+ def test_stop_cleans_up_properly(self):
+ self.driver._test_shell = False
+ self.driver.start(True, [])
+ last_tmpdir = self.port._filesystem.last_tmpdir
+ self.assertNotEquals(last_tmpdir, None)
+ self.driver.stop()
+ self.assertFalse(self.port._filesystem.isdir(last_tmpdir))
+ def test_two_starts_cleans_up_properly(self):
+ # clone the WebKitDriverTest tests here since we override start() and stop()
+ self.driver._test_shell = False
+ self.driver.start(True, [])
+ last_tmpdir = self.port._filesystem.last_tmpdir
+ self.driver._start(True, [])
+ self.assertFalse(self.port._filesystem.isdir(last_tmpdir))
+
class ChromiumPortTest(port_testcase.PortTestCase):
port_name = 'chromium-mac'
port_maker = chromium.ChromiumPort
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py (119307 => 119308)
--- trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py 2012-06-02 01:38:39 UTC (rev 119307)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py 2012-06-02 02:09:12 UTC (rev 119308)
@@ -462,8 +462,7 @@
self._server_process = None
def __del__(self):
- assert(self._server_process is None)
- assert(self._driver_tempdir is None)
+ self.stop()
def cmd_line(self, pixel_tests, per_test_args):
cmd = self._command_wrapper(self._port.get_option('wrapper'))
@@ -488,6 +487,7 @@
return cmd
def _start(self, pixel_tests, per_test_args):
+ self.stop()
self._driver_tempdir = self._port._filesystem.mkdtemp(prefix='%s-' % self._port.driver_name())
server_name = self._port.driver_name()
environment = self._port.setup_environ_for_server(server_name)
@@ -565,8 +565,7 @@
def run_test(self, driver_input):
start_time = time.time()
- if not self._server_process:
- self._start(driver_input.should_run_pixel_test, driver_input.args)
+ self.start(driver_input.should_run_pixel_test, driver_input.args)
self.error_from_test = str()
self.err_seen_eof = False
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py (119307 => 119308)
--- trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py 2012-06-02 01:38:39 UTC (rev 119307)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py 2012-06-02 02:09:12 UTC (rev 119308)
@@ -349,7 +349,7 @@
driver._server_process = FakeServerProcess(False)
driver._subprocess_was_unresponsive = False
assert_crash(driver, '#CRASHED - WebProcess (pid 8675)\n', True, 'WebProcess', 8675)
-
+
driver._crashed_process_name = None
driver._crashed_pid = None
driver._server_process = FakeServerProcess(False)
@@ -376,3 +376,11 @@
self.assertNotEquals(last_tmpdir, None)
driver.stop()
self.assertFalse(port._filesystem.isdir(last_tmpdir))
+
+ def test_two_starts_cleans_up_properly(self):
+ port = TestWebKitPort()
+ driver = WebKitDriver(port, 0, pixel_tests=True)
+ driver.start(True, [])
+ last_tmpdir = port._filesystem.last_tmpdir
+ driver._start(True, [])
+ self.assertFalse(port._filesystem.isdir(last_tmpdir))