summaryrefslogtreecommitdiffstats
path: root/WebKitTools/Scripts/webkitpy/buildbot_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/Scripts/webkitpy/buildbot_unittest.py')
-rw-r--r--WebKitTools/Scripts/webkitpy/buildbot_unittest.py155
1 files changed, 0 insertions, 155 deletions
diff --git a/WebKitTools/Scripts/webkitpy/buildbot_unittest.py b/WebKitTools/Scripts/webkitpy/buildbot_unittest.py
deleted file mode 100644
index bde3e04..0000000
--- a/WebKitTools/Scripts/webkitpy/buildbot_unittest.py
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright (C) 2009 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import unittest
-
-from webkitpy.buildbot import BuildBot
-
-from webkitpy.BeautifulSoup import BeautifulSoup
-
-class BuildBotTest(unittest.TestCase):
-
- _example_one_box_status = '''
- <table>
- <tr>
- <td class="box"><a href="builders/Windows%20Debug%20%28Tests%29">Windows Debug (Tests)</a></td>
- <td align="center" class="LastBuild box success"><a href="builders/Windows%20Debug%20%28Tests%29/builds/3693">47380</a><br />build<br />successful</td>
- <td align="center" class="Activity building">building<br />ETA in<br />~ 14 mins<br />at 13:40</td>
- <tr>
- <td class="box"><a href="builders/SnowLeopard%20Intel%20Release">SnowLeopard Intel Release</a></td>
- <td class="LastBuild box" >no build</td>
- <td align="center" class="Activity building">building<br />< 1 min</td>
- <tr>
- <td class="box"><a href="builders/Qt%20Linux%20Release">Qt Linux Release</a></td>
- <td align="center" class="LastBuild box failure"><a href="builders/Qt%20Linux%20Release/builds/654">47383</a><br />failed<br />compile-webkit</td>
- <td align="center" class="Activity idle">idle</td>
- </table>
-'''
- _expected_example_one_box_parsings = [
- {
- 'builder_url': u'http://build.webkit.org/builders/Windows%20Debug%20%28Tests%29',
- 'build_url': u'http://build.webkit.org/builders/Windows%20Debug%20%28Tests%29/builds/3693',
- 'is_green': True,
- 'name': u'Windows Debug (Tests)',
- 'built_revision': 47380
- },
- {
- 'builder_url': u'http://build.webkit.org/builders/SnowLeopard%20Intel%20Release',
- 'is_green': False,
- 'name': u'SnowLeopard Intel Release',
- },
- {
- 'builder_url': u'http://build.webkit.org/builders/Qt%20Linux%20Release',
- 'build_url': u'http://build.webkit.org/builders/Qt%20Linux%20Release/builds/654',
- 'is_green': False,
- 'name': u'Qt Linux Release',
- 'built_revision': 47383
- },
- ]
-
- def test_status_parsing(self):
- buildbot = BuildBot()
-
- soup = BeautifulSoup(self._example_one_box_status)
- status_table = soup.find("table")
- input_rows = status_table.findAll('tr')
-
- for x in range(len(input_rows)):
- status_row = input_rows[x]
- expected_parsing = self._expected_example_one_box_parsings[x]
-
- builder = buildbot._parse_builder_status_from_row(status_row)
-
- # Make sure we aren't parsing more or less than we expect
- self.assertEquals(builder.keys(), expected_parsing.keys())
-
- for key, expected_value in expected_parsing.items():
- self.assertEquals(builder[key], expected_value, ("Builder %d parse failure for key: %s: Actual='%s' Expected='%s'" % (x, key, builder[key], expected_value)))
-
- def test_core_builder_methods(self):
- buildbot = BuildBot()
-
- # Override builder_statuses function to not touch the network.
- def example_builder_statuses(): # We could use instancemethod() to bind 'self' but we don't need to.
- return BuildBotTest._expected_example_one_box_parsings
- buildbot.builder_statuses = example_builder_statuses
-
- buildbot.core_builder_names_regexps = [ 'Leopard', "Windows.*Build" ]
- self.assertEquals(buildbot.red_core_builders_names(), [])
- self.assertTrue(buildbot.core_builders_are_green())
-
- buildbot.core_builder_names_regexps = [ 'SnowLeopard', 'Qt' ]
- self.assertEquals(buildbot.red_core_builders_names(), [ u'SnowLeopard Intel Release', u'Qt Linux Release' ])
- self.assertFalse(buildbot.core_builders_are_green())
-
- def test_builder_name_regexps(self):
- buildbot = BuildBot()
-
- # For complete testing, this list should match the list of builders at build.webkit.org:
- example_builders = [
- { 'name': u'Tiger Intel Release', },
- { 'name': u'Leopard Intel Release (Build)', },
- { 'name': u'Leopard Intel Release (Tests)', },
- { 'name': u'Leopard Intel Debug (Build)', },
- { 'name': u'Leopard Intel Debug (Tests)', },
- { 'name': u'SnowLeopard Intel Release (Build)', },
- { 'name': u'SnowLeopard Intel Release (Tests)', },
- { 'name': u'SnowLeopard Intel Leaks', },
- { 'name': u'Windows Release (Build)', },
- { 'name': u'Windows Release (Tests)', },
- { 'name': u'Windows Debug (Build)', },
- { 'name': u'Windows Debug (Tests)', },
- { 'name': u'Qt Linux Release', },
- { 'name': u'Gtk Linux Release', },
- { 'name': u'Gtk Linux 32-bit Debug', },
- { 'name': u'Gtk Linux 64-bit Debug', },
- { 'name': u'Chromium Linux Release', },
- { 'name': u'Chromium Mac Release', },
- { 'name': u'Chromium Win Release', },
- ]
- name_regexps = [ "Leopard", "Windows.*Build", "Chromium" ]
- expected_builders = [
- { 'name': u'Leopard Intel Release (Build)', },
- { 'name': u'Leopard Intel Release (Tests)', },
- { 'name': u'Leopard Intel Debug (Build)', },
- { 'name': u'Leopard Intel Debug (Tests)', },
- { 'name': u'Windows Release (Build)', },
- { 'name': u'Windows Debug (Build)', },
- { 'name': u'Chromium Linux Release', },
- { 'name': u'Chromium Mac Release', },
- { 'name': u'Chromium Win Release', },
- ]
-
- # This test should probably be updated if the default regexp list changes
- self.assertEquals(buildbot.core_builder_names_regexps, name_regexps)
-
- builders = buildbot._builder_statuses_with_names_matching_regexps(example_builders, name_regexps)
- self.assertEquals(builders, expected_builders)
-
-if __name__ == '__main__':
- unittest.main()