Title: [91144] trunk/Tools
Revision
91144
Author
[email protected]
Date
2011-07-15 21:03:18 -0700 (Fri, 15 Jul 2011)

Log Message

gardening server should proxy buildbot status for garden-o-matic
https://bugs.webkit.org/show_bug.cgi?id=64588

Reviewed by Eric Seidel.

This information will be used to detect build breaks.  I took this
opportunity to make ChromiumBuildBot non-static.

* Scripts/webkitpy/common/host.py:
* Scripts/webkitpy/tool/commands/rebaseline.py:
* Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
* Scripts/webkitpy/tool/mocktool.py:
* Scripts/webkitpy/tool/servers/gardeningserver.py:
* Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (91143 => 91144)


--- trunk/Tools/ChangeLog	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/ChangeLog	2011-07-16 04:03:18 UTC (rev 91144)
@@ -1,3 +1,20 @@
+2011-07-15  Adam Barth  <[email protected]>
+
+        gardening server should proxy buildbot status for garden-o-matic
+        https://bugs.webkit.org/show_bug.cgi?id=64588
+
+        Reviewed by Eric Seidel.
+
+        This information will be used to detect build breaks.  I took this
+        opportunity to make ChromiumBuildBot non-static.
+
+        * Scripts/webkitpy/common/host.py:
+        * Scripts/webkitpy/tool/commands/rebaseline.py:
+        * Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
+        * Scripts/webkitpy/tool/mocktool.py:
+        * Scripts/webkitpy/tool/servers/gardeningserver.py:
+        * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
+
 2011-07-15  Julien Chaffraix  <[email protected]>
 
         [NRWT] Add support for --no-http

Modified: trunk/Tools/Scripts/webkitpy/common/host.py (91143 => 91144)


--- trunk/Tools/Scripts/webkitpy/common/host.py	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/common/host.py	2011-07-16 04:03:18 UTC (rev 91144)
@@ -31,7 +31,9 @@
 from webkitpy.common.checkout import Checkout
 from webkitpy.common.checkout.scm import default_scm
 from webkitpy.common.config.ports import WebKitPort
+from webkitpy.common.memoized import memoized
 from webkitpy.common.net import bugzilla, buildbot, statusserver, web
+from webkitpy.common.net.buildbot.chromiumbuildbot import ChromiumBuildBot
 from webkitpy.common.net.irc import ircproxy
 from webkitpy.common.system import executive, filesystem, platforminfo, user, workspace
 from webkitpy.layout_tests import port
@@ -67,6 +69,10 @@
     def port(self):
         return self._port
 
+    @memoized
+    def chromium_buildbot(self):
+        return ChromiumBuildBot()
+
     def ensure_irc_connected(self, irc_delegate):
         if not self._irc:
             self._irc = ircproxy.IRCProxy(irc_delegate)

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py (91143 => 91144)


--- trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py	2011-07-16 04:03:18 UTC (rev 91144)
@@ -33,7 +33,6 @@
 
 import webkitpy.common.config.urls as config_urls
 from webkitpy.common.net.buildbot import BuildBot
-from webkitpy.common.net.buildbot.chromiumbuildbot import ChromiumBuildBot
 from webkitpy.common.net.layouttestresults import LayoutTestResults
 from webkitpy.common.system.user import User
 from webkitpy.layout_tests.models import test_failures
@@ -92,8 +91,7 @@
 
     def _results_url(self, builder_name):
         # FIXME: Generalize this command to work with non-build.chromium.org builders.
-        # FIXME: We should really get the buildbot from the tool!
-        builder = ChromiumBuildBot().builder_with_name(builder_name)
+        builder = self._tool.chromium_buildbot().builder_with_name(builder_name)
         return builder.accumulated_results_url()
 
     def _baseline_directory(self, builder_name):

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py (91143 => 91144)


--- trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py	2011-07-16 04:03:18 UTC (rev 91144)
@@ -48,7 +48,7 @@
         command = RebaselineTest()
         command.bind_to_tool(MockTool())
         build = Mock()
-        expected_stdout = "Retrieving http://build.chromium.org/f/chromium/layout_test_results/Webkit_Linux/results/layout-test-results/userscripts/another-test-actual.txt ...\n"
+        expected_stdout = "Retrieving http://example.com/f/builders/Webkit Linux/results//userscripts/another-test-actual.txt ...\n"
         OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Linux", "userscripts/another-test.html", "txt"], expected_stdout=expected_stdout)
 
 

Modified: trunk/Tools/Scripts/webkitpy/tool/mocktool.py (91143 => 91144)


--- trunk/Tools/Scripts/webkitpy/tool/mocktool.py	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/mocktool.py	2011-07-16 04:03:18 UTC (rev 91144)
@@ -400,6 +400,9 @@
     def results_url(self):
         return "http://example.com/builders/%s/results/" % self.name()
 
+    def accumulated_results_url(self):
+        return "http://example.com/f/builders/%s/results/" % self.name()
+
     def force_build(self, username, comments):
         log("MOCK: force_build: name=%s, username=%s, comments=%s" % (
             self._name, username, comments))
@@ -835,6 +838,7 @@
         self._irc = None
         self.user = MockUser()
         self._scm = MockSCM()
+        self._chromium_buildbot = MockBuildBot()
         # Various pieces of code (wrongly) call filesystem.chdir(checkout_root).
         # Making the checkout_root exist in the mock filesystem makes that chdir not raise.
         self.filesystem = MockFileSystem(dirs=set([self._scm.checkout_root]))
@@ -851,6 +855,9 @@
     def checkout(self):
         return self._checkout
 
+    def chromium_buildbot(self):
+        return self._chromium_buildbot
+
     def ensure_irc_connected(self, delegate):
         if not self._irc:
             self._irc = MockIRC()

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py (91143 => 91144)


--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-07-16 04:03:18 UTC (rev 91144)
@@ -68,6 +68,10 @@
         else:
             self._serve_json(commit_info.to_json())
 
+    def buildbot(self):
+        builder_statuses = self.server.tool.chromium_buildbot().builder_statuses()
+        self._serve_json(builder_statuses)
+
     def rollout(self):
         revision = self.query['revision'][0]
         reason = self.query['reason'][0]

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py (91143 => 91144)


--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py	2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py	2011-07-16 04:03:18 UTC (rev 91144)
@@ -77,6 +77,10 @@
 """
         self._post_to_path("/changelog?revision=2314", expected_stderr=expected_stderr, expected_stdout=expected_stdout)
 
+    def test_buildbot(self):
+        expected_stdout = '== Begin JSON Response ==\n[{"is_green": true, "name": "Builder1", "activity": "building"}, {"is_green": true, "name": "Builder2", "activity": "idle"}]\n== End JSON Response ==\n'
+        self._post_to_path("/buildbot", expected_stdout=expected_stdout, expected_stderr='')
+
     def test_rollout(self):
         expected_stderr = "MOCK run_command: ['echo', 'rollout', '--force-clean', '--non-interactive', '2314', 'MOCK rollout reason']\n"
         expected_stdout = "== Begin Response ==\nsuccess\n== End Response ==\n"
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to