Title: [119308] trunk/Tools
Revision
119308
Author
[email protected]
Date
2012-06-01 19:09:12 -0700 (Fri, 01 Jun 2012)

Log Message

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):

Modified Paths

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))
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to