Skip to content

Instantly share code, notes, and snippets.

@kkristof
Created June 20, 2011 11:55
Show Gist options
  • Save kkristof/1035494 to your computer and use it in GitHub Desktop.
Save kkristof/1035494 to your computer and use it in GitHub Desktop.
nrwt
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index eedd122..a8b154a 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,12 @@
+2011-06-14 Kristóf Kosztyó <Kosztyo.Kristof@stud.u-szeged.hu>
+
+ Reviewed by NOBODY (OOPS!).
+
+ [NRWT] Print error message when there is no httpd present on the system
+ https://bugs.webkit.org/show_bug.cgi?id=62027
+
+ * Scripts/webkitpy/layout_tests/port/apache_http_server.py:
+
2011-06-09 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed rolling out r88471, because it broke plugin tests on Qt.
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/apache_http_server.py b/Tools/Scripts/webkitpy/layout_tests/port/apache_http_server.py
index 05a2338..ee230c1 100644
--- a/Tools/Scripts/webkitpy/layout_tests/port/apache_http_server.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/apache_http_server.py
@@ -206,6 +206,9 @@ class LayoutTestApacheHttpd(http_server_base.HttpServerBase):
return False
return True
+ def _get_httpd_path(self):
+ return self._start_cmd.split()[0]
+
def start(self):
"""Starts the apache http server."""
# Stop any currently running servers.
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/base.py b/Tools/Scripts/webkitpy/layout_tests/port/base.py
index bf4be0c..e0432fd 100755
--- a/Tools/Scripts/webkitpy/layout_tests/port/base.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/base.py
@@ -188,6 +188,9 @@ class Port(object):
This step can be skipped with --nocheck-sys-deps.
Returns whether the system is properly configured."""
+ if needs_http:
+ self.check_httpd()
+
return True
def check_image_diff(self, override_step=None, logging=True):
@@ -227,6 +230,22 @@ class Port(object):
return True
+ def check_httpd(self):
+ if self.get_option('use_apache'):
+ server = apache_http_server.LayoutTestApacheHttpd(self, self.results_directory())
+ else:
+ server = http_server.Lighttpd(self, self.results_directory())
+
+ if not has_httpd(server):
+ raise Exception('No httpd found. Cannot run http tests.')
+
+ def has_httpd(self, server)
+ cmd = server._get_httpd_path
+ try:
+ return self._port_obj._executive.run_command([cmd, "-v"], return_exit_code=True) == 0
+ except OSError, e:
+ return False
+
def compare_text(self, expected_text, actual_text):
"""Return whether or not the two strings are *not* equal. This
routine is used to diff text output.
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/http_server.py b/Tools/Scripts/webkitpy/layout_tests/port/http_server.py
index e525ee0..1803b54 100755
--- a/Tools/Scripts/webkitpy/layout_tests/port/http_server.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/http_server.py
@@ -102,6 +102,9 @@ class Lighttpd(http_server_base.HttpServerBase):
def is_running(self):
return self._process != None
+ def _get_httpd_path(self):
+ return self._port_obj._path_to_lighttpd().split()[0]
+
def start(self):
if self.is_running():
raise 'Lighttpd already running'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment