WebDriver: add hooks to make it possible to easily run WPT WebDriver web server by...
authorbburg@apple.com <bburg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 21 Apr 2019 19:48:46 +0000 (19:48 +0000)
committerbburg@apple.com <bburg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 21 Apr 2019 19:48:46 +0000 (19:48 +0000)
https://bugs.webkit.org/show_bug.cgi?id=197125
<rdar://problem/50061468>

Reviewed by Darin Adler.

Sometimes I want to run wptserve independently of tests. Make it easier to script that
using this class rather than making our own ./wpt serve invocation.

* Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py:
(WebDriverW3CWebServer):
(WebDriverW3CWebServer.document_root): Expose this to clients.
(WebDriverW3CWebServer.wait): Add a method that blocks until the server dies.

(WebDriverW3CWebServer.__enter__):
(WebDriverW3CWebServer.__exit__):
Make it possible to use the web server with a 'with' statement.

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

Tools/ChangeLog
Tools/Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py

index df3c3a6..5f04197 100644 (file)
@@ -1,3 +1,23 @@
+2019-04-21  Brian Burg  <bburg@apple.com>
+
+        WebDriver: add hooks to make it possible to easily run WPT WebDriver web server by itself
+        https://bugs.webkit.org/show_bug.cgi?id=197125
+        <rdar://problem/50061468>
+
+        Reviewed by Darin Adler.
+
+        Sometimes I want to run wptserve independently of tests. Make it easier to script that
+        using this class rather than making our own ./wpt serve invocation.
+
+        * Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py:
+        (WebDriverW3CWebServer):
+        (WebDriverW3CWebServer.document_root): Expose this to clients.
+        (WebDriverW3CWebServer.wait): Add a method that blocks until the server dies.
+
+        (WebDriverW3CWebServer.__enter__):
+        (WebDriverW3CWebServer.__exit__):
+        Make it possible to use the web server with a 'with' statement.
+
 2019-04-20  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake][Win] Use target oriented design for WebKitLegacy
index 99ac2ae..68cf8e2 100644 (file)
@@ -131,3 +131,23 @@ class WebDriverW3CWebServer(object):
 
     def port(self):
         return self._server_port
+
+    def document_root(self):
+        return self._layout_doc_root
+
+    # Waits indefinitely until the webserver process is terminated.
+    def wait(self):
+        if not self._pid:
+            return
+
+        self._process.wait()
+
+    def __enter__(self):
+        if not self._pid:
+            self.start()
+
+        return self
+
+    def __exit__(self, exc_type, exc_value, exc_traceback):
+        if self._pid:
+            self.stop()