2011-03-14 James Kozianski <koz@chromium.org>

        Reviewed by Ojan Vafai.

        Add method to make BuildBot return test outputs
        https://bugs.webkit.org/show_bug.cgi?id=54374

        The Builder.latest_cached_build will be used by the new rebaseline
        script to determine the build to use baselines from.

        * Scripts/webkitpy/common/net/buildbot/buildbot.py:
        * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:

git-svn-id: svn://svn.chromium.org/blink/trunk@81106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent ec43bb1b
2011-03-14 James Kozianski <koz@chromium.org>
Reviewed by Ojan Vafai.
Add method to make BuildBot return test outputs
https://bugs.webkit.org/show_bug.cgi?id=54374
The Builder.latest_cached_build will be used by the new rebaseline
script to determine the build to use baselines from.
* Scripts/webkitpy/common/net/buildbot/buildbot.py:
* Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
2011-03-14 Adam Roben <aroben@apple.com> 2011-03-14 Adam Roben <aroben@apple.com>
Test that WKBundlePageCanHandleRequest returns true for empty document URLs Test that WKBundlePageCanHandleRequest returns true for empty document URLs
......
...@@ -42,9 +42,11 @@ import urllib2 ...@@ -42,9 +42,11 @@ import urllib2
from webkitpy.common.net.failuremap import FailureMap from webkitpy.common.net.failuremap import FailureMap
from webkitpy.common.net.layouttestresults import LayoutTestResults from webkitpy.common.net.layouttestresults import LayoutTestResults
from webkitpy.common.net.regressionwindow import RegressionWindow from webkitpy.common.net.regressionwindow import RegressionWindow
from webkitpy.common.net.testoutputset import TestOutputSet
from webkitpy.common.system.logutils import get_logger from webkitpy.common.system.logutils import get_logger
from webkitpy.thirdparty.autoinstalled.mechanize import Browser from webkitpy.common.system.zipfileset import ZipFileSet
from webkitpy.thirdparty.BeautifulSoup import BeautifulSoup from webkitpy.thirdparty.BeautifulSoup import BeautifulSoup
from webkitpy.thirdparty.autoinstalled.mechanize import Browser
_log = get_logger(__file__) _log = get_logger(__file__)
...@@ -92,6 +94,12 @@ class Builder(object): ...@@ -92,6 +94,12 @@ class Builder(object):
self._builds_cache[build_number] = build self._builds_cache[build_number] = build
return build return build
def latest_cached_build(self):
revision_build_pairs = self.revision_build_pairs_with_results()
revision_build_pairs.sort(key=lambda i: i[1])
latest_build_number = revision_build_pairs[-1][1]
return self.build(latest_build_number)
def force_build(self, username="webkit-patch", comments=None): def force_build(self, username="webkit-patch", comments=None):
def predicate(form): def predicate(form):
try: try:
...@@ -221,6 +229,12 @@ class Build(object): ...@@ -221,6 +229,12 @@ class Build(object):
results_directory = "r%s (%s)" % (self.revision(), self._number) results_directory = "r%s (%s)" % (self.revision(), self._number)
return "%s/%s" % (self._builder.results_url(), urllib.quote(results_directory)) return "%s/%s" % (self._builder.results_url(), urllib.quote(results_directory))
def results_zip_url(self):
return "%s.zip" % self.results_url()
def results(self):
return TestOutputSet(self._builder.name(), None, ZipFileSet(self.results_zip_url()), include_expected=False)
def _fetch_results_html(self): def _fetch_results_html(self):
results_html = "%s/results.html" % (self.results_url()) results_html = "%s/results.html" % (self.results_url())
# FIXME: This should use NetworkTransaction's 404 handling instead. # FIXME: This should use NetworkTransaction's 404 handling instead.
......
...@@ -410,6 +410,33 @@ class BuildBotTest(unittest.TestCase): ...@@ -410,6 +410,33 @@ class BuildBotTest(unittest.TestCase):
buildbot._latest_builds_from_builders = mock_builds_from_builders buildbot._latest_builds_from_builders = mock_builds_from_builders
self.assertEqual(buildbot.last_green_revision(), 1) self.assertEqual(buildbot.last_green_revision(), 1)
def _fetch_build(self, build_number):
if build_number == 5:
return "correct build"
return "wrong build"
def _fetch_revision_to_build_map(self):
return {'r5': 5, 'r2': 2, 'r3': 3}
def test_latest_cached_build(self):
b = Builder('builder', BuildBot())
b._fetch_build = self._fetch_build
b._fetch_revision_to_build_map = self._fetch_revision_to_build_map
self.assertEquals("correct build", b.latest_cached_build())
def results_url(self):
return "some-url"
def test_results_zip_url(self):
b = Build(None, 123, 123, False)
b.results_url = self.results_url
self.assertEquals("some-url.zip", b.results_zip_url())
def test_results(self):
builder = Builder('builder', BuildBot())
b = Build(builder, 123, 123, True)
self.assertTrue(b.results())
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment