Title: [90036] trunk/Tools
Revision
90036
Author
[email protected]
Date
2011-06-29 12:47:04 -0700 (Wed, 29 Jun 2011)

Log Message

2011-06-29  Xan Lopez  <[email protected]>

        Reviewed by Adam Barth.

        [GTK] overlapping drag&drop tests fail on NRWT
        https://bugs.webkit.org/show_bug.cgi?id=57640

        Make a GTK test driver that spawns one Xvfb instance per
        thread. This avoids bad interactions in DnD tests between threads.

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

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (90035 => 90036)


--- trunk/Tools/ChangeLog	2011-06-29 19:46:28 UTC (rev 90035)
+++ trunk/Tools/ChangeLog	2011-06-29 19:47:04 UTC (rev 90036)
@@ -1,3 +1,15 @@
+2011-06-29  Xan Lopez  <[email protected]>
+
+        Reviewed by Adam Barth.
+
+        [GTK] overlapping drag&drop tests fail on NRWT
+        https://bugs.webkit.org/show_bug.cgi?id=57640
+
+        Make a GTK test driver that spawns one Xvfb instance per
+        thread. This avoids bad interactions in DnD tests between threads.
+
+        * Scripts/webkitpy/layout_tests/port/gtk.py:
+
 2011-06-29  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r89888.

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/gtk.py (90035 => 90036)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/gtk.py	2011-06-29 19:46:28 UTC (rev 90035)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/gtk.py	2011-06-29 19:47:04 UTC (rev 90036)
@@ -29,19 +29,43 @@
 """WebKit Gtk implementation of the Port interface."""
 
 import logging
+import os
+import signal
+import subprocess
 
-from webkitpy.layout_tests.port.webkit import WebKitPort
+from webkitpy.layout_tests.port import base, builders, server_process, webkit
 
 _log = logging.getLogger("webkitpy.layout_tests.port.gtk")
 
 
-class GtkPort(WebKitPort):
+class GtkDriver(webkit.WebKitDriver):
+    """WebKit Gtk implementation of the Driver class."""
+
+    def start(self):
+        display_id = self._worker_number + 1
+        run_xvfb = ["Xvfb", ":%d" % (display_id)]
+        self._xvfb_process = subprocess.Popen(run_xvfb)
+        environment = self._port.setup_environ_for_server()
+        environment['DISPLAY'] = ":%d" % (display_id)
+        self._server_process = server_process.ServerProcess(self._port,
+            self._port.driver_name(), self.cmd_line(), environment)
+
+    def stop(self):
+        webkit.WebKitDriver.stop(self)
+        os.kill(self._xvfb_process.pid, signal.SIGTERM)
+        self._xvfb_process.wait()
+
+
+class GtkPort(webkit.WebKitPort):
     """WebKit Gtk implementation of the Port class."""
 
     def __init__(self, **kwargs):
         kwargs.setdefault('port_name', 'gtk')
-        WebKitPort.__init__(self, **kwargs)
+        webkit.WebKitPort.__init__(self, **kwargs)
 
+    def create_driver(self, worker_number):
+        return GtkDriver(self, worker_number)
+
     def _path_to_apache_config_file(self):
         # FIXME: This needs to detect the distribution and change config files.
         return self._filesystem.join(self.layout_tests_dir(), 'http', 'conf',
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to