diff options
author | Ben Murdoch <benm@google.com> | 2011-05-05 14:36:32 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-10 15:38:30 +0100 |
commit | f05b935882198ccf7d81675736e3aeb089c5113a (patch) | |
tree | 4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebKitTools/BuildSlaveSupport/build.webkit.org-config | |
parent | 60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff) | |
download | external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2 |
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebKitTools/BuildSlaveSupport/build.webkit.org-config')
17 files changed, 0 insertions, 2316 deletions
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/Makefile b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/Makefile deleted file mode 100644 index bd5e749..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -*- makefile -*- - -# This is a simple makefile which lives in a buildmaster/buildslave -# directory (next to the buildbot.tac file). It allows you to start/stop the -# master or slave by doing 'make start' or 'make stop'. - -# The 'reconfig' target will tell a buildmaster to reload its config file. - -start: - /opt/local/bin/twistd2.5 --no_save -y buildbot.tac - -stop: - kill `cat twistd.pid` - -reconfig: - kill -HUP `cat twistd.pid` - -log: - tail -f twistd.log diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/README b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/README deleted file mode 100644 index 3ba8a22..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/README +++ /dev/null @@ -1,2 +0,0 @@ -Note: This directory is *not* automatically synchronized with Subversion via a post-commit hook. -Any changes made to code within this directory will need to be manually pushed to build.webkit.org. diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/buildbot.tac b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/buildbot.tac deleted file mode 100644 index 1a53acf..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/buildbot.tac +++ /dev/null @@ -1,21 +0,0 @@ - -from twisted.application import service -from buildbot.master import BuildMaster - -basedir = r'/buildbot/webkit' -configfile = r'master.cfg' -rotateLength = 1000000 -maxRotatedFiles = None - -application = service.Application('buildmaster') -try: - from twisted.python.logfile import LogFile - from twisted.python.log import ILogObserver, FileLogObserver - logfile = LogFile.fromFullPath("twistd.log", rotateLength=rotateLength, - maxRotatedFiles=maxRotatedFiles) - application.setComponent(ILogObserver, FileLogObserver(logfile).emit) -except ImportError: - # probably not yet twisted 8.2.0 and beyond, can't set log yet - pass -BuildMaster(basedir, configfile).setServiceParent(application) - diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json deleted file mode 100644 index d46b140..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "slaves": [ { "name": "test-slave", "platform": "*" }, - - { "name": "apple-xserve-1", "platform": "mac-leopard" }, - { "name": "apple-xserve-2", "platform": "mac-leopard" }, - { "name": "apple-xserve-3", "platform": "mac-leopard" }, - - { "name": "apple-xserve-4", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-5", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-6", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-7", "platform": "mac-snowleopard" }, - - { "name": "apple-pixel-1", "platform": "mac-leopard" }, - - { "name": "apple-macpro-1", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-2", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-3", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-4", "platform": "mac-leopard" }, - { "name": "apple-macpro-5", "platform": "mac-leopard" }, - - { "name": "apple-windows-1", "platform": "win"}, - { "name": "apple-windows-2", "platform": "win"}, - { "name": "apple-windows-3", "platform": "win"}, - { "name": "apple-windows-4", "platform": "win"}, - { "name": "apple-windows-5", "platform": "win"}, - { "name": "apple-windows-6", "platform": "win"}, - { "name": "apple-windows-7", "platform": "win"}, - { "name": "apple-windows-8", "platform": "win"}, - { "name": "apple-windows-9", "platform": "win"}, - { "name": "apple-windows-10", "platform": "win"}, - { "name": "apple-windows-11", "platform": "win"}, - { "name": "apple-windows-12", "platform": "win"}, - { "name": "apple-windows-13", "platform": "win"}, - { "name": "apple-windows-14", "platform": "win"}, - { "name": "apple-windows-15", "platform": "win"}, - - { "name": "gtk-linux-slave-1", "platform": "gtk"}, - { "name": "gtk-linux-slave-2", "platform": "gtk"}, - { "name": "gtk-linux-slave-3", "platform": "gtk"}, - { "name": "gtk-linux-slave-4", "platform": "gtk"}, - - { "name": "szeged-linux-1", "platform": "qt"}, - { "name": "szeged-linux-2", "platform": "qt"}, - { "name": "szeged-linux-3", "platform": "qt"}, - { "name": "szeged-linux-4", "platform": "qt"}, - - { "name": "szeged-windows-1", "platform": "qt"}, - { "name": "szeged-windows-2", "platform": "qt"}, - - { "name": "google-windows-1", "platform": "chromium-win" }, - { "name": "google-mac-1", "platform": "chromium-mac" }, - { "name": "google-linux-1", "platform": "chromium-linux" }, - { "name": "google-windows-2", "platform": "chromium-win" }, - { "name": "google-mac-2", "platform": "chromium-mac" }, - { "name": "google-linux-2", "platform": "chromium-linux" }, - { "name": "google-new-tests", "platform": "mac-leopard" }, - - { "name": "wincairo-1", "platform": "wincairo" }, - - { "name": "efl-linux-slave-1", "platform": "efl" } - ], - - "builders": [ { "name": "Leopard Intel Release (Build)", "type": "Build", "builddir": "leopard-intel-release", - "platform": "mac-leopard", "configuration": "release", "architectures": ["i386"], - "triggers": ["leopard-intel-release-tests"], - "slavenames": ["apple-xserve-1", "apple-xserve-2", "test-slave"] - }, - { "name": "Leopard Intel Release (Tests)", "type": "Test", "builddir": "leopard-intel-release-tests", - "platform": "mac-leopard", "configuration": "release", "architectures": ["i386"], - "slavenames": ["apple-macpro-4", "apple-pixel-1", "test-slave"] - }, - - { "name": "Leopard Intel Debug (Build)", "type": "Build", "builddir": "leopard-intel-debug", - "platform": "mac-leopard", "configuration": "debug", "architectures": ["i386"], - "triggers": ["leopard-intel-debug-tests"], - "slavenames": ["apple-xserve-1", "apple-xserve-2", "test-slave"] - }, - { "name": "Leopard Intel Debug (Tests)", "type": "Test", "builddir": "leopard-intel-debug-tests", - "platform": "mac-leopard", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["apple-xserve-3", "test-slave", "apple-macpro-5"] - }, - { "name": "SnowLeopard Intel Release (Build)", "type": "Build", "builddir": "snowleopard-intel-release", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "triggers": ["snowleopard-intel-release-tests", "snowleopard-intel-release-tests-wk2"], - "slavenames": ["apple-xserve-4", "test-slave"] - }, - { "name": "SnowLeopard Intel Release (Tests)", "type": "Test", "builddir": "snowleopard-intel-release-tests", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["apple-xserve-5", "apple-xserve-6", "test-slave"] - }, - { "name": "SnowLeopard Intel Leaks", "type": "BuildAndTestLeaks", "builddir": "snowleopard-intel-leaks", - "platform": "mac-snowleopard", "configuration": "debug", "architectures": ["x86_64"], - "slavenames": ["apple-macpro-1", "apple-macpro-3", "test-slave"] - }, - { "name": "SnowLeopard Intel Release (WebKit2 Tests)", "type": "TestWebKit2", "builddir": "snowleopard-intel-release-tests-wk2", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["apple-xserve-7", "test-slave"] - }, - { - "name": "Windows Release (Build)", "type": "Build", "builddir": "win-release", - "platform": "win", "configuration": "release", "architectures": ["i386"], - "triggers": ["win-release-tests", "win-release-tests-wk2"], - "slavenames": ["apple-windows-2", "test-slave"] - }, - { - "name": "Windows 7 Release (Tests)", "type": "Test", "builddir": "win-release-tests", - "platform": "win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["apple-windows-5", "apple-windows-6", "apple-windows-11", "apple-windows-12", "test-slave"] - }, - { - "name": "Windows Debug (Build)", "type": "Build", "builddir": "win-debug", - "platform": "win", "configuration": "debug", "architectures": ["i386"], - "triggers": ["win-debug-tests"], - "slavenames": ["apple-windows-1", "test-slave"] - }, - { - "name": "Windows XP Debug (Tests)", "type": "Test", "builddir": "win-debug-tests", - "platform": "win", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["apple-windows-3", "apple-windows-4", "apple-windows-13", "apple-windows-14", "apple-windows-15", "test-slave"] - }, - { "name": "Windows 7 Release (WebKit2 Tests)", "type": "TestWebKit2", "builddir": "win-release-tests-wk2", - "platform": "win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["apple-windows-7", "apple-windows-8", "apple-windows-9", "apple-windows-10", "test-slave"] - }, - { - "name": "GTK Linux 32-bit Release", "type": "BuildAndTest", "builddir": "gtk-linux-32-release", - "platform": "gtk", "configuration": "release", "architectures": ["i386"], - "slavenames": ["gtk-linux-slave-1"] - }, - { - "name": "GTK Linux 32-bit Debug", "type": "BuildAndTest", "builddir": "gtk-linux-32-debug", - "platform": "gtk", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["gtk-linux-slave-2"] - }, - { - "name": "GTK Linux 64-bit Debug", "type": "BuildAndTest", "builddir": "gtk-linux-64-debug", - "platform": "gtk", "configuration": "debug", "architectures": ["x86_64"], - "slavenames": ["gtk-linux-slave-3"] - }, - { - "name": "GTK Linux 64-bit Release", "type": "BuildAndTest", "builddir": "gtk-linux-64-release", - "platform": "gtk", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["gtk-linux-slave-4"] - }, - { - "name": "Qt Linux Release", "type": "BuildAndTest", "builddir": "qt-linux-release", - "platform": "qt", "configuration": "release", "architectures": ["i386"], - "slavenames": ["szeged-linux-1"] - }, - { - "name": "Qt Linux Release minimal", "type": "Build", "builddir": "qt-linux-release-minimal", - "platform": "qt", "configuration": "release", "architectures": ["i386"], - "slavenames": ["szeged-linux-2"] - }, - { - "name": "Qt Linux ARMv5 Release", "type": "Build", "builddir": "qt-linux-armv5-release", - "platform": "qt", "configuration": "release", "architectures": ["armv5"], - "slavenames": ["szeged-linux-3"] - }, - { - "name": "Qt Linux ARMv7 Release", "type": "Build", "builddir": "qt-linux-armv7-release", - "platform": "qt", "configuration": "release", "architectures": ["armv7"], - "slavenames": ["szeged-linux-4"] - }, - { - "name": "Qt Windows 32-bit Release", "type": "Build", "builddir": "qt-windows-32bit-release", - "platform": "qt", "configuration": "release", "architectures": ["i386"], - "slavenames": ["szeged-windows-1"] - }, - { - "name": "Qt Windows 32-bit Debug", "type": "Build", "builddir": "qt-windows-32bit-debug", - "platform": "qt", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["szeged-windows-2"] - }, - { - "name": "Chromium Win Release", "type": "Build", "builddir": "chromium-win-release", - "platform": "chromium-win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-windows-1"] - }, - { - "name": "Chromium Mac Release", "type": "Build", "builddir": "chromium-mac-release", - "platform": "chromium-mac", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-mac-1"] - }, - { - "name": "Chromium Linux Release", "type": "Build", "builddir": "chromium-linux-release", - "platform": "chromium-linux", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-linux-1"] - }, - { - "name": "Chromium Win Release (Tests)", "type": "NewBuildAndTest", "builddir": "chromium-win-release-tests", - "platform": "chromium-win", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-windows-2"] - }, - { - "name": "Chromium Mac Release (Tests)", "type": "NewBuildAndTest", "builddir": "chromium-mac-release-tests", - "platform": "chromium-mac", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-mac-2"] - }, - { - "name": "Chromium Linux Release (Tests)", "type": "NewBuildAndTest", "builddir": "chromium-linux-release-tests", - "platform": "chromium-linux", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-linux-2"] - }, - { - "name": "New run-webkit-tests", "type": "NewBuildAndTest", "builddir": "google-new-tests", - "platform": "mac-leopard", "configuration": "release", "architectures": ["i386"], - "slavenames": ["google-new-tests"] - }, - { - "name": "WinCairo Debug (Build)", "type": "Build", "builddir": "win-cairo-debug", - "platform": "wincairo", "configuration": "debug", "architectures": ["i386"], - "slavenames": ["wincairo-1"] - }, - { - "name": "EFL Linux Release (Build)", "type": "Build", "builddir": "efl-linux-release", - "platform": "efl", "configuration": "release", "architectures": ["i386"], - "slavenames": ["efl-linux-slave-1"] - } - ], - - "schedulers": [ { "type": "AnyBranchScheduler", "name": "trunk", "change_filter": "trunk_filter", "treeStableTimer": 45.0, - "builderNames": ["Leopard Intel Release (Build)", "Leopard Intel Debug (Build)", - "SnowLeopard Intel Release (Build)", "SnowLeopard Intel Leaks", - "GTK Linux 32-bit Release", "GTK Linux 32-bit Debug", "GTK Linux 64-bit Debug", "GTK Linux 64-bit Release", - "Qt Linux Release", "Qt Linux Release minimal", "Qt Linux ARMv5 Release", "Qt Linux ARMv7 Release", - "Qt Windows 32-bit Release", "Qt Windows 32-bit Debug", - "Chromium Win Release", "Chromium Mac Release", "Chromium Linux Release", - "Chromium Win Release (Tests)", "Chromium Mac Release (Tests)", "Chromium Linux Release (Tests)", - "WinCairo Debug (Build)", "EFL Linux Release (Build)"] - }, - { "type": "PlatformSpecificScheduler", "platform": "win", "branch": "trunk", "treeStableTimer": 45.0, - "builderNames": ["Windows Release (Build)", "Windows Debug (Build)"] - }, - { "type": "Triggerable", "name": "leopard-intel-release-tests", - "builderNames": ["Leopard Intel Release (Tests)"] - }, - { "type": "Triggerable", "name": "leopard-intel-debug-tests", - "builderNames": ["Leopard Intel Debug (Tests)"] - }, - { "type": "Triggerable", "name": "snowleopard-intel-release-tests", - "builderNames": ["SnowLeopard Intel Release (Tests)"] - }, - { "type": "Triggerable", "name": "snowleopard-intel-release-tests-wk2", - "builderNames": ["SnowLeopard Intel Release (WebKit2 Tests)"] - }, - { "type": "Triggerable", "name": "win-release-tests", - "builderNames": ["Windows 7 Release (Tests)"] - }, - { "type": "Triggerable", "name": "win-debug-tests", - "builderNames": ["Windows XP Debug (Tests)"] - }, - { "type": "Triggerable", "name": "win-release-tests-wk2", - "builderNames": ["Windows 7 Release (WebKit2 Tests)"] - } - ] -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg deleted file mode 100644 index c28abb6..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg +++ /dev/null @@ -1,552 +0,0 @@ -# -*- python -*- -# ex: set syntax=python: - -c = BuildmasterConfig = {} - -from buildbot.buildslave import BuildSlave -from buildbot.changes.pb import PBChangeSource -from buildbot.scheduler import AnyBranchScheduler, Triggerable -from buildbot.schedulers.filter import ChangeFilter -from buildbot.status import html -from buildbot.process import buildstep, factory, properties -from buildbot.steps import master, shell, source, transfer, trigger -from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS, SKIPPED - -from twisted.internet import defer - -import re -import simplejson - -from webkitpy.common.config import build as wkbuild -from webkitpy.common.net.buildbot import BuildBot as wkbuildbot - -WithProperties = properties.WithProperties - -class ConfigureBuild(buildstep.BuildStep): - name = "configure build" - description = ["configuring build"] - descriptionDone = ["configured build"] - def __init__(self, platform, configuration, architecture, buildOnly, *args, **kwargs): - buildstep.BuildStep.__init__(self, *args, **kwargs) - self.platform = platform.split('-', 1)[0] - self.fullPlatform = platform - self.configuration = configuration - self.architecture = architecture - self.buildOnly = buildOnly - self.addFactoryArguments(platform=platform, configuration=configuration, architecture=architecture, buildOnly=buildOnly) - - def start(self): - self.setProperty("platform", self.platform) - self.setProperty("fullPlatform", self.fullPlatform) - self.setProperty("configuration", self.configuration) - self.setProperty("architecture", self.architecture) - self.setProperty("buildOnly", self.buildOnly) - self.finished(SUCCESS) - return defer.succeed(None) - - -class CheckOutSource(source.SVN): - baseURL = "http://svn.webkit.org/repository/webkit/" - mode = "update" - def __init__(self, *args, **kwargs): - source.SVN.__init__(self, baseURL=self.baseURL, defaultBranch="trunk", mode=self.mode, *args, **kwargs) - - -class InstallWin32Dependencies(shell.Compile): - description = ["installing dependencies"] - descriptionDone = ["installed dependencies"] - command = ["perl", "./WebKitTools/Scripts/update-webkit-auxiliary-libs"] - -class KillOldProcesses(shell.Compile): - name = "kill old processes" - description = ["killing old processes"] - descriptionDone = ["killed old processes"] - command = ["python", "./WebKitTools/BuildSlaveSupport/win/kill-old-processes"] - -class InstallChromiumDependencies(shell.ShellCommand): - name = "gclient" - description = ["updating chromium dependencies"] - descriptionDone = ["updated chromium dependencies"] - command = ["perl", "./WebKitTools/Scripts/update-webkit-chromium", "--force"] - haltOnFailure = True - -class CleanupChromiumLinuxCrashLogs(shell.ShellCommand): - name = "cleanup crash logs" - description = ["removing crash logs"] - descriptionDone = ["removed crash logs"] - command = ["sh", "-c", "rm -rf /tmp/.org.chromium.*"] - haltOnFailure = False - - -def appendCustomBuildFlags(step, platform): - if platform in ('gtk', 'wx', 'qt', 'chromium', 'wincairo', 'efl'): - step.setCommand(step.command + ['--' + platform]) - - -class CompileWebKit(shell.Compile): - command = ["perl", "./WebKitTools/Scripts/build-webkit", WithProperties("--%(configuration)s")] - env = {'MFLAGS':''} - name = "compile-webkit" - description = ["compiling"] - descriptionDone = ["compiled"] - warningPattern = ".*arning: .*" - - def start(self): - platform = self.getProperty('platform') - buildOnly = self.getProperty('buildOnly') - if platform == 'mac' and buildOnly: - self.setCommand(self.command + ['DEBUG_INFORMATION_FORMAT=dwarf-with-dsym']) - - appendCustomBuildFlags(self, platform) - return shell.Compile.start(self) - - -class ArchiveBuiltProduct(shell.ShellCommand): - command = ["python", "./WebKitTools/BuildSlaveSupport/built-product-archive", - WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"] - name = "archive-built-product" - description = ["archiving built product"] - descriptionDone = ["archived built product"] - haltOnFailure = True - - -class ExtractBuiltProduct(shell.ShellCommand): - command = ["python", "./WebKitTools/BuildSlaveSupport/built-product-archive", - WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "extract"] - name = "extract-built-product" - description = ["extracting built product"] - descriptionDone = ["extracted built product"] - haltOnFailure = True - - -class UploadBuiltProduct(transfer.FileUpload): - slavesrc = WithProperties("WebKitBuild/%(configuration)s.zip") - masterdest = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip") - haltOnFailure = True - - def __init__(self): - transfer.FileUpload.__init__(self, self.slavesrc, self.masterdest) - - -class DownloadBuiltProduct(transfer.FileDownload): - slavedest = WithProperties("WebKitBuild/%(configuration)s.zip") - mastersrc = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip") - haltOnFailure = True - flunkOnFailure = True - - def __init__(self): - transfer.FileDownload.__init__(self, self.mastersrc, self.slavedest) - - -class RunJavaScriptCoreTests(shell.Test): - name = "jscore-test" - description = ["jscore-tests running"] - descriptionDone = ["jscore-tests"] - command = ["perl", "./WebKitTools/Scripts/run-javascriptcore-tests", WithProperties("--%(configuration)s")] - logfiles = {'results': 'JavaScriptCore/tests/mozilla/actual.html'} - - def __init__(self, skipBuild=False, *args, **kwargs): - self.skipBuild = skipBuild - shell.Test.__init__(self, *args, **kwargs) - self.addFactoryArguments(skipBuild=skipBuild) - - def start(self): - appendCustomBuildFlags(self, self.getProperty('platform')) - if self.skipBuild: - self.setCommand(self.command + ['--skip-build']) - return shell.Test.start(self) - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - statusLines = [line for line in logText.splitlines() if line.find('regression') >= 0 and line.find(' found.') >= 0] - if statusLines and statusLines[0].split()[0] != '0': - self.regressionLine = statusLines[0] - else: - self.regressionLine = None - - def evaluateCommand(self, cmd): - if self.regressionLine: - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.regressionLine: - return [self.name, self.regressionLine] - - return [self.name] - - -class RunWebKitTests(shell.Test): - name = "layout-test" - description = ["layout-tests running"] - descriptionDone = ["layout-tests"] - command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-new-test-results", - "--no-sample-on-timeout", "--results-directory", "layout-test-results", "--use-remote-links-to-tests", - WithProperties("--%(configuration)s"), "--exit-after-n-crashes-or-timeouts", "20"] - - def __init__(self, skipBuild=False, *args, **kwargs): - self.skipBuild = skipBuild - shell.Test.__init__(self, *args, **kwargs) - self.addFactoryArguments(skipBuild=skipBuild) - - def start(self): - appendCustomBuildFlags(self, self.getProperty('platform')) - if self.skipBuild: - self.setCommand(self.command + ['--root=WebKitBuild/bin']) - return shell.Test.start(self) - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - incorrectLayoutLines = [] - for line in logText.splitlines(): - if line.find('had incorrect layout') >= 0 or line.find('were new') >= 0 or line.find('was new') >= 0: - incorrectLayoutLines.append(line) - elif line.find('test case') >= 0 and (line.find(' crashed') >= 0 or line.find(' timed out') >= 0): - incorrectLayoutLines.append(line) - elif line.startswith("WARNING:") and line.find(' leak') >= 0: - incorrectLayoutLines.append(line.replace('WARNING: ', '')) - elif line.find('Exiting early') >= 0: - incorrectLayoutLines.append(line) - - # FIXME: Detect and summarize leaks of RefCounted objects - - self.incorrectLayoutLines = incorrectLayoutLines - - def evaluateCommand(self, cmd): - if self.incorrectLayoutLines: - if len(self.incorrectLayoutLines) == 1: - line = self.incorrectLayoutLines[0] - if line.find('were new') >= 0 or line.find('was new') >= 0 or line.find(' leak') >= 0: - return WARNINGS - - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectLayoutLines: - return self.incorrectLayoutLines - - return [self.name] - - -class NewRunWebKitTests(RunWebKitTests): - command = ["python", "./WebKitTools/Scripts/new-run-webkit-tests", "--noshow-results", - "--verbose", "--results-directory", "layout-test-results", - "--builder-name", WithProperties("%(buildername)s"), - "--build-number", WithProperties("%(buildnumber)s"), - "--master-name", "webkit.org", - "--test-results-server", "test-results.appspot.com", - WithProperties("--%(configuration)s"), "--use-drt"] - - -class RunPythonTests(shell.Test): - name = "webkitpy-test" - description = ["python-tests running"] - descriptionDone = ["python-tests"] - command = ["python", "./WebKitTools/Scripts/test-webkitpy"] - - -class RunPerlTests(shell.Test): - name = "webkitperl-test" - description = ["perl-tests running"] - descriptionDone = ["perl-tests"] - command = ["perl", "./WebKitTools/Scripts/test-webkitperl"] - - -class RunGtkAPITests(shell.Test): - name = "API tests" - description = ["API tests running"] - descriptionDone = ["API tests"] - command = ["perl", "./WebKitTools/Scripts/run-gtk-tests", WithProperties("--%(configuration)s")] - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - incorrectLines = [] - for line in logText.splitlines(): - if line.startswith('ERROR'): - incorrectLines.append(line) - - self.incorrectLines = incorrectLines - - def evaluateCommand(self, cmd): - if self.incorrectLines: - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectLines: - return ["%d API tests failed" % len(self.incorrectLines)] - - return [self.name] - -class RunQtAPITests(shell.Test): - name = "API tests" - description = ["API tests running"] - descriptionDone = ["API tests"] - command = ["python", "./WebKitTools/Scripts/run-qtwebkit-tests", - "--output-file=qt-unit-tests.html", "--do-not-open-results", - WithProperties("WebKitBuild/%(configuration_pretty)s/WebKit/qt/tests/")] - - def start(self): - self.setProperty("configuration_pretty", self.getProperty("configuration").title()) - return shell.Test.start(self) - - def commandComplete(self, cmd): - shell.Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - foundItems = re.findall("TOTALS: (?P<passed>\d+) passed, (?P<failed>\d+) failed, (?P<skipped>\d+) skipped", logText) - - self.incorrectTests = 0 - self.statusLine = [] - - if foundItems: - self.incorrectTests = int(foundItems[0][1]) - if self.incorrectTests > 0: - self.statusLine = [ - "%s passed, %s failed, %s skipped" % (foundItems[0][0], foundItems[0][1], foundItems[0][2]) - ] - - def evaluateCommand(self, cmd): - if self.incorrectTests: - return WARNINGS - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectTests: - return self.statusLine - - return [self.name] - -class RunWebKitLeakTests(RunWebKitTests): - def start(self): - self.setCommand(self.command + ["--leaks"]) - return RunWebKitTests.start(self) - - -class RunWebKit2Tests(RunWebKitTests): - def start(self): - self.setCommand(self.command + ["--webkit-test-runner"]) - return RunWebKitTests.start(self) - - -class RunChromiumWebKitUnitTests(shell.Test): - name = "webkit-unit-tests" - description = ["webkit-unit-tests running"] - descriptionDone = ["webkit-unit-tests"] - command = ["perl", "./WebKitTools/Scripts/run-chromium-webkit-unit-tests", - WithProperties("--%(configuration)s")] - - -class ArchiveTestResults(shell.ShellCommand): - command = ["python", "./WebKitTools/BuildSlaveSupport/test-result-archive", - WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"] - name = "archive-test-results" - description = ["archiving test results"] - descriptionDone = ["archived test results"] - haltOnFailure = True - - -class UploadTestResults(transfer.FileUpload): - slavesrc = "layout-test-results.zip" - masterdest = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s).zip") - - def __init__(self): - transfer.FileUpload.__init__(self, self.slavesrc, self.masterdest) - - -class ExtractTestResults(master.MasterShellCommand): - zipFile = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s).zip") - resultDirectory = WithProperties("public_html/results/%(buildername)s/r%(got_revision)s (%(buildnumber)s)") - - def __init__(self): - master.MasterShellCommand.__init__(self, "") - - def start(self): - self.command = ["ditto", "-k", "-x", "-V", self.build.getProperties().render(self.zipFile), self.build.getProperties().render(self.resultDirectory)] - return master.MasterShellCommand.start(self) - - def finished(self, result): - url = self.build.getProperties().render(self.resultDirectory).replace("public_html/", "/") - self.addURL("view results", url) - result = master.MasterShellCommand.finished(self, result) - self.step_status.setText(["uploaded results"]) - return result - - -class Factory(factory.BuildFactory): - def __init__(self, platform, configuration, architectures, buildOnly): - factory.BuildFactory.__init__(self) - self.addStep(ConfigureBuild, platform=platform, configuration=configuration, architecture=" ".join(architectures), buildOnly=buildOnly) - self.addStep(CheckOutSource) - if platform == "win": - self.addStep(KillOldProcesses) - self.addStep(InstallWin32Dependencies) - if platform.startswith("chromium"): - self.addStep(InstallChromiumDependencies) - -class BuildFactory(Factory): - def __init__(self, platform, configuration, architectures, triggers=None): - Factory.__init__(self, platform, configuration, architectures, True) - self.addStep(CompileWebKit) - if triggers: - self.addStep(ArchiveBuiltProduct) - self.addStep(UploadBuiltProduct) - self.addStep(trigger.Trigger, schedulerNames=triggers) - -class TestFactory(Factory): - TestClass = RunWebKitTests - def __init__(self, platform, configuration, architectures): - Factory.__init__(self, platform, configuration, architectures, False) - self.addStep(DownloadBuiltProduct) - self.addStep(ExtractBuiltProduct) - self.addStep(RunJavaScriptCoreTests, skipBuild=True) - self.addStep(self.TestClass, skipBuild=(platform == 'win')) - # Tiger's Python 2.3 is too old. WebKit Python requires 2.5+. - # Sadly we have no way to detect the version on the slave from here. - if platform != "mac-tiger": - self.addStep(RunPythonTests) - self.addStep(RunPerlTests) - self.addStep(ArchiveTestResults) - self.addStep(UploadTestResults) - self.addStep(ExtractTestResults) - -class BuildAndTestFactory(Factory): - TestClass = RunWebKitTests - def __init__(self, platform, configuration, architectures): - Factory.__init__(self, platform, configuration, architectures, False) - if platform == "chromium-linux": - self.addStep(CleanupChromiumLinuxCrashLogs) - self.addStep(CompileWebKit) - if not platform.startswith("chromium"): - self.addStep(RunJavaScriptCoreTests) - if platform.startswith("chromium"): - self.addStep(RunChromiumWebKitUnitTests) - self.addStep(self.TestClass) - # Tiger's Python 2.3 is too old. WebKit Python requires 2.5+. - # Sadly we have no way to detect the version on the slave from here. - if platform != "mac-tiger": - self.addStep(RunPythonTests) - self.addStep(RunPerlTests) - self.addStep(ArchiveTestResults) - self.addStep(UploadTestResults) - self.addStep(ExtractTestResults) - if platform == "gtk": - self.addStep(RunGtkAPITests) - if platform == "qt": - self.addStep(RunQtAPITests) - -class BuildAndTestLeaksFactory(BuildAndTestFactory): - TestClass = RunWebKitLeakTests - -class NewBuildAndTestFactory(BuildAndTestFactory): - TestClass = NewRunWebKitTests - -class TestWebKit2Factory(TestFactory): - TestClass = RunWebKit2Tests - -class PlatformSpecificScheduler(AnyBranchScheduler): - def __init__(self, platform, branch, **kwargs): - self.platform = platform - filter = ChangeFilter(branch=[branch, None], filter_fn=self.filter) - AnyBranchScheduler.__init__(self, name=platform, change_filter=filter, **kwargs) - - def filter(self, change): - return wkbuild.should_build(self.platform, change.files) - -trunk_filter = ChangeFilter(branch=["trunk", None]) - -def loadBuilderConfig(c): - # FIXME: These file handles are leaked. - passwords = simplejson.load(open('passwords.json')) - config = simplejson.load(open('config.json')) - - # use webkitpy's buildbot module to test for core builders - wkbb = wkbuildbot() - - c['slaves'] = [BuildSlave(slave['name'], passwords[slave['name']], max_builds=1) for slave in config['slaves']] - - c['schedulers'] = [] - for scheduler in config['schedulers']: - if "change_filter" in scheduler: - scheduler["change_filter"] = globals()[scheduler["change_filter"]] - kls = globals()[scheduler.pop('type')] - c['schedulers'].append(kls(**scheduler)) - - c['builders'] = [] - for builder in config['builders']: - for slaveName in builder['slavenames']: - for slave in config['slaves']: - if slave['name'] != slaveName or slave['platform'] == '*': - continue - - if slave['platform'] != builder['platform']: - raise Exception, "Builder %r is for platform %r but has slave %r for platform %r!" % (builder['name'], builder['platform'], slave['name'], slave['platform']) - - break - - factory = globals()["%sFactory" % builder.pop('type')] - factoryArgs = [] - for key in "platform", "configuration", "architectures", "triggers": - value = builder.pop(key, None) - if value: - factoryArgs.append(value) - - builder["factory"] = factory(*factoryArgs) - - builder["category"] = "noncore" - if wkbb._is_core_builder(builder['name']): - builder["category"] = "core" - - c['builders'].append(builder) - -loadBuilderConfig(c) - -c['change_source'] = PBChangeSource() - -c['status'] = [] -c['status'].append(html.WebStatus(http_port=8710, allowForce=True)) - -c['slavePortnum'] = 17000 -c['projectName'] = "WebKit" -c['projectURL'] = "http://webkit.org" -c['buildbotURL'] = "http://build.webkit.org/" - -c['buildHorizon'] = 1000 -c['logHorizon'] = 500 -c['eventHorizon'] = 200 -c['buildCacheSize'] = 60 diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/buildbot.css b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/buildbot.css deleted file mode 100644 index a71c81f..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/buildbot.css +++ /dev/null @@ -1,382 +0,0 @@ -body { - margin-bottom:50px; -} - -body, td { - font-family: Verdana, Cursor; - font-size: 10px; - font-weight: bold; -} - -a:link,a:visited,a:active { - color: #444; -} - -a:hover { - color: #000000; -} - -table { - border-spacing: 1px 1px; -} - -table td { - padding: 3px 0px 3px 0px; - text-align: center; -} - -.Project { - width: 100px; -} - -.LastBuild, .Activity { - padding: 0 0 0 4px; -} - -.LastBuild, .Activity, .Builder, .BuildStep { - width: 155px; - max-width: 155px; -} - -td.Time { - color: #000; - border-bottom: 1px solid #aaa; - background-color: #eee; -} - -td.Activity, td.Change, td.Builder { - color: #333333; - background-color: #CCCCCC; -} - -td.Change { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} -td.Event { - color: #777; - background-color: #ddd; - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} - -td.Activity { - border-top-left-radius: 10px; - -webkit-border-top-left-radius: 10px; - -moz-border-radius-topleft: 10px; - min-height: 20px; - padding: 2px 0 2px 0; -} - -td.idle, td.waiting, td.offline, td.building { - border-top-left-radius: 0px; - -webkit-border-top-left-radius: 0px; - -moz-border-radius-topleft: 0px; -} - -.LastBuild { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -/* Console view styles */ - -td.DevRev { - padding: 4px 8px 4px 8px; - color: #333333; - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - background-color: #eee; - width: 1%; -} - -td.DevRevCollapse { - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; -} - -td.DevName { - padding: 4px 8px 4px 8px; - color: #333333; - background-color: #eee; - width: 1%; - text-align: left; -} - -td.DevStatus { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.DevSlave { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.first { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; -} - -td.last { - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -td.DevStatusCategory { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-width:1px; - border-style:solid; -} - -td.DevStatusCollapse { - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; -} - -td.DevDetails { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - background-color: #eee; - text-align: left; -} - -td.DevComment { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - background-color: #eee; - text-align: left; -} - -td.Alt { - background-color: #CCCCCC; -} - -.legend { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: 100px; - max-width: 100px; - text-align:center; - padding: 2px 2px 2px 2px; - height:14px; - white-space:nowrap; -} - -.DevStatusBox { - text-align:center; - height:20px; - padding:0 2px; - line-height:0; - white-space:nowrap; -} - -.DevStatusBox a { - opacity: 0.85; - border-width:1px; - border-style:solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display:block; - width:90%; - height:20px; - line-height:20px; - margin-left: auto; - margin-right: auto; -} - -.DevSlaveBox { - text-align:center; - height:10px; - padding:0 2px; - line-height:0; - white-space:nowrap; -} - -.DevSlaveBox a { - opacity: 0.85; - border-width:1px; - border-style:solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display:block; - width:90%; - height:10px; - line-height:20px; - margin-left: auto; - margin-right: auto; -} - -a.noround { - border-radius: 0px; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - position: relative; - margin-top: -8px; - margin-bottom: -8px; - height: 36px; - border-top-width: 0; - border-bottom-width: 0; -} - -a.begin { - border-top-width:1px; - position: relative; - margin-top: 0px; - margin-bottom: -7px; - height: 27px; - border-top-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-right-radius: 4px; - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -a.end { - border-bottom-width:1px; - position: relative; - margin-top: -7px; - margin-bottom: 0px; - height: 27px; - border-bottom-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.center_align { - text-align: center; -} - -.right_align { - text-align: right; -} - -.left_align { - text-align: left; -} - -div.BuildWaterfall { - border-radius: 7px; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - position: absolute; - left: 0px; - top: 0px; - background-color: #FFFFFF; - padding: 4px 4px 4px 4px; - float: left; - display: none; - border-width: 1px; - border-style: solid; -} - -/* LastBuild, BuildStep states */ -.success { - color: #FFFFFF; - background-color: #8fdf5f; - border-color: #4F8530; -} - -.failure { - color: #FFFFFF; - background-color: #e98080; - border-color: #A77272; -} - -.warnings { - color: #FFFFFF; - background-color: #ffc343; - border-color: #C29D46; -} - -.exception, td.offline { - color: #FFFFFF; - background-color: #e0b0ff; - border-color: #ACA0B3; -} - -.start,.running, td.building { - color: #666666; - background-color: #fffc6c; - border-color: #C5C56D; -} - -.start { - border-bottom-left-radius: 10px; - -webkit-border-bottom-left-radius: 10px; - -moz-border-radius-bottomleft: 10px; - border-bottom-right-radius: 10px; - -webkit-border-bottom-right-radius: 10px; - -moz-border-radius-bottomright: 10px; -} - -.notstarted { - border-width:1px; - border-style:solid; - border-color:#aaa; -} - -td.Project a:hover, td.start a:hover { - color: #000; -} - -/* grid styles */ - -table.Grid { - border-collapse: collapse; -} - -table.Grid tr td { - padding: 0.2em; - margin: 0px; - text-align: center; -} - -table.Grid tr td.title { - font-size: 90%; - border-right: 1px gray solid; - border-bottom: 1px gray solid; -} - -table.Grid tr td.sourcestamp { - font-size: 90%; -} - -table.Grid tr td.builder { - text-align: right; - font-size: 90%; -} - -table.Grid tr td.build { - border: 1px gray solid; -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/default.css b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/default.css deleted file mode 100644 index 4223807..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/default.css +++ /dev/null @@ -1,524 +0,0 @@ -div.header { display: none; } -body > hr { display: none; } -div.content h1 { display: none; } - -body.interface { - background: url(bg_gradient.jpg) repeat-x; - font-family: Verdana, Cursor; - font-size: 10px; - font-weight: bold; - background-color: #fff; - color: #333; -} - -a:link,a:visited,a:active { - color: #444; -} - -table { - border-spacing: 1px 1px; -} - -table td { - padding: 3px 2px 3px 2px; -} - -.Project { - min-width: 6em; -} - -.LastBuild,.Activity { - padding: 0 0 0 4px; -} - -/* Chromium Specific styles */ -div.BuildResultInfo { - color: #444; -} - -div.Announcement { - margin-bottom: 1em; -} - -div.Announcement>a:hover { - color: black; -} - -div.Announcement>div.Notice { - background-color: #afdaff; - padding: 0.5em; - font-size: 16px; - text-align: center; -} - -div.Announcement>div.Open { - border: 3px solid #8fdf5f; - padding: 0.5em; - font-size: 16px; - text-align: center; -} - -div.Announcement>div.Closed { - border: 5px solid #e98080; - padding: 0.5em; - font-size: 24px; - font-weight: bold; - text-align: center; -} - -td.Time { - color: #000; - border-bottom: 1px solid #aaa; - background-color: #eee; -} - -td.Activity,td.Change,td.Builder { - color: #333333; - background-color: #CCCCCC; -} - -td.Change { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} - -td.Event { - color: #777; - background-color: #ddd; - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; -} - -td.Activity { - border-top-left-radius: 10px; - -webkit-border-top-left-radius: 10px; - -moz-border-radius-topleft: 10px; - min-height: 20px; - padding: 2px 0 2px 0; -} - -td.idle,td.waiting,td.offline,td.building { - border-top-left-radius: 0px; - -webkit-border-top-left-radius: 0px; - -moz-border-radius-topleft: 0px; -} - -.LastBuild { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -/* Console view styles */ -td.DevRev { - padding: 4px 8px 4px 8px; - color: #333333; - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; - background-color: #eee; - width: 1%; -} - -td.DevRevCollapse { - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; -} - -td.DevName { - padding: 4px 8px 4px 8px; - color: #333333; - background-color: #eee; - width: 1%; - text-align: left; -} - -td.DevStatus { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.DevSlave { - padding: 4px 4px 4px 4px; - color: #333333; - background-color: #eee; -} - -td.first { - border-top-left-radius: 5px; - -webkit-border-top-left-radius: 5px; - -moz-border-radius-topleft: 5px; -} - -td.last { - border-top-right-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topright: 5px; -} - -td.DevStatusCategory { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-width: 1px; - border-style: solid; -} - -td.DevStatusCollapse { - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; -} - -td.DevDetails { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - background-color: #eee; - text-align: left; -} - -td.DevComment { - font-weight: normal; - padding: 8px 8px 8px 8px; - color: #333333; - border-bottom-right-radius: 5px; - -webkit-border-bottom-right-radius: 5px; - -moz-border-radius-bottomright: 5px; - border-bottom-left-radius: 5px; - -webkit-border-bottom-left-radius: 5px; - -moz-border-radius-bottomleft: 5px; - background-color: #eee; - text-align: left; -} - -td.Alt { - background-color: #ddd; -} - -.legend { - border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: 100px; - max-width: 100px; - text-align: center; - padding: 2px 2px 2px 2px; - height: 14px; - white-space: nowrap; -} - -.DevStatusBox { - text-align: center; - height: 20px; - padding: 0 2px; - line-height: 0; - white-space: nowrap; -} - -.DevStatusBox a { - opacity: 0.85; - border-width: 1px; - border-style: solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display: block; - width: 90%; - height: 20px; - line-height: 20px; - margin-left: auto; - margin-right: auto; -} - -.DevSlaveBox { - text-align: center; - height: 10px; - padding: 0 2px; - line-height: 0; - white-space: nowrap; -} - -.DevSlaveBox a { - opacity: 0.85; - border-width: 1px; - border-style: solid; - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - display: block; - width: 90%; - height: 10px; - line-height: 20px; - margin-left: auto; - margin-right: auto; -} - -a.noround { - border-radius: 0px; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - position: relative; - margin-top: -8px; - margin-bottom: -8px; - height: 36px; - border-top-width: 0; - border-bottom-width: 0; -} - -a.begin { - border-top-width: 1px; - position: relative; - margin-top: 0px; - margin-bottom: -7px; - height: 27px; - border-top-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-right-radius: 4px; - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -a.end { - border-bottom-width: 1px; - position: relative; - margin-top: -7px; - margin-bottom: 0px; - height: 27px; - border-bottom-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.center_align { - text-align: center; -} - -.right_align { - text-align: right; -} - -.left_align { - text-align: left; -} - -div.BuildWaterfall { - border-radius: 7px; - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - position: absolute; - left: 0px; - top: 0px; - background-color: #FFFFFF; - padding: 4px 4px 4px 4px; - float: left; - display: none; - border-width: 1px; - border-style: solid; -} - -/* LastBuild, BuildStep states */ -.success { - color: #FFFFFF; - background-color: #8FDF5F; - border-color: #4F8530; -} - -.failure { - color: #FFFFFF; - background-color: #E98080; - border-color: #A77272; -} - -.warnings { - color: #FFFFFF; - background-color: #FFC343; - border-color: #C29D46; -} - -.exception { - color: #FFFFFF; - background-color: #E0B0FF; - border-color: #ACA0B3; -} - -.start,.running,td.building { - color: #666666; - background-color: #FFFC6C; - border-color: #C5C56D; -} - -.offline,td.offline { - color: #FFFFFF; - background-color: #E0B0FF; - border-color: #dddddd; -} - - -.start { - border-bottom-left-radius: 10px; - -webkit-border-bottom-left-radius: 10px; - -moz-border-radius-bottomleft: 10px; - border-bottom-right-radius: 10px; - -webkit-border-bottom-right-radius: 10px; - -moz-border-radius-bottomright: 10px; -} - -.notstarted { - border-width: 1px; - border-style: solid; - border-color: #aaa; - background-color: #fff; -} - -.closed { - background-color: #ff0000; -} - -.closed .large { - font-size: 1.5em; - font-weight: bolder; -} - -td.Project a:hover,td.start a:hover { - color: #000; -} - -.mini-box { - text-align: center; - height: 20px; - padding: 0 2px; - line-height: 0; - white-space: nowrap; -} - -.mini-box a { - border-radius: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - display: block; - width: 100%; - height: 20px; - line-height: 20px; - margin-top: -30px; -} - -.mini-closed { - -box-sizing: border-box; - -webkit-box-sizing: border-box; - border: 4px solid red; -} - -/* grid styles */ -table.Grid { - border-collapse: collapse; -} - -table.Grid tr td { - padding: 0.2em; - margin: 0px; - text-align: center; -} - -table.Grid tr td.title { - font-size: 90%; - border-right: 1px gray solid; - border-bottom: 1px gray solid; -} - -table.Grid tr td.sourcestamp { - font-size: 90%; -} - -table.Grid tr td.builder { - text-align: right; - font-size: 90%; -} - -table.Grid tr td.build { - border: 1px gray solid; -} - -/* column container */ -div.column { - margin: 0 2em 2em 0; - float: left; -} - -/* info tables */ -table.info { - border-spacing: 1px; -} - -table.info td { - padding: 0.1em 1em 0.1em 1em; - text-align: center; -} - -table.info th { - padding: 0.2em 1.5em 0.2em 1.5em; - text-align: center; -} - -table.info td.left { - text-align: left -} - -.alt { - background-color: #d6d6d6; -} - -li { - padding: 0.1em 1em 0.1em 1em; -} - -.result { - padding: 0.3em 1em 0.3em 1em; -} - -/* log view */ -.log * { - vlink: #800080; - font-family: "Courier New", courier, monotype; -} - -span.stdout { - color: black; -} - -span.stderr { - color: red; -} - -span.header { - color: blue; -} - -/* revision & email */ -.revision .full { - display: none; -} - -.user .email { - display: none; -} - -/* change comments (use regular colors here) */ -pre.comments>a:link,pre.comments>a:visited { - color: blue; -} - -pre.comments>a:active { - color: purple; -} diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/robots.txt b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/robots.txt deleted file mode 100644 index 579297c..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/public_html/robots.txt +++ /dev/null @@ -1,13 +0,0 @@ -User-agent: * -Disallow: /waterfall -Disallow: /builders -Disallow: /changes -Disallow: /buildslaves -Disallow: /schedulers -Disallow: /one_line_per_build -Disallow: /one_box_per_builder -Disallow: /xmlrpc -Disallow: /grid -Disallow: /tgrid -Disallow: /console -Disallow: /results diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/templates/root.html b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/templates/root.html deleted file mode 100755 index c6d2343..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/templates/root.html +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> -<title>Welcome to the Buildbot</title> -</head> - -<body> -<h1>Welcome to the Buildbot!</h1> - -<ul> - <li><a href="console?category=core">Core Console</a></li> - <li><a href="waterfall?category=core">Core Waterfall</a></li> - <li><a href="console">Console</a></li> - <li><a href="waterfall">Waterfall Display</a> will give you a time-oriented summary of recent buildbot activity.</li> - <li><a href="one_box_per_builder">Latest Build</a> for each builder is here.</li> - <li><a href="one_line_per_build">Recent Builds</a> are summarized here, one per line.</li> - <li><a href="buildslaves">Buildslave</a> information</li> - <li><a href="http://webkit-commit-queue.appspot.com/">Commit Queue Status</a> information.</li> - <li><a href="changes">ChangeSource</a> information.</li> - <li><a href="results">Test Results</a></li> -</ul> -</body> </html> - diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py deleted file mode 100644 index f81fcae..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from webkit import auth, status, builders, schedulers -reload(auth) -reload(status) -reload(builders) -reload(schedulers) diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py deleted file mode 100644 index b182e16..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/auth.py +++ /dev/null @@ -1,9 +0,0 @@ -from buildbot.buildslave import BuildSlave - -def getSlaveAuthenticationDetails(): - def createBuildSlave((name, password)): - return BuildSlave(name, password, max_builds=1) - return map(createBuildSlave, _getSlaveAuthenticationDetails()) - -def _getSlaveAuthenticationDetails(): - return [("slave-name", "password")] diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py deleted file mode 100644 index 8bba881..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/basesteps.py +++ /dev/null @@ -1,51 +0,0 @@ -from buildbot.steps import shell, source -import os - - -def buildStepWithDefaultTimeout(klass, default_timeout=75*60): - class Step(klass): - timeout = default_timeout - def __init__(self, *args, **kwargs): - kwargs['timeout'] = self.timeout - klass.__init__(self, *args, **kwargs) - - return Step - - -Test = buildStepWithDefaultTimeout(shell.Test) -Compile = buildStepWithDefaultTimeout(shell.Compile) -ShellCommand = buildStepWithDefaultTimeout(shell.ShellCommand) -SVN = buildStepWithDefaultTimeout(source.SVN) - - -class UploadCommand: - def initializeForUpload(self): - try: - try: - umask = os.umask(0) - os.makedirs(self.getDestinationPath(), 042770) - except OSError, e: - if e.errno != 17: - raise - finally: - os.umask(umask) - - def getDestinationPath(self): - return "/home/buildresults%s" % (self.getURLPath(), ) - - def getRemotePath(self): - return "buildresults@build.webkit.org:%s" % (self.getDestinationPath(), ) - - def getURLPath(self): - return '/results/%s/%s/' % (self.getBuild().builder.name, self.getBuild().getProperty("buildnumber"), ) - - def getBuild(self): - return self.build - - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - return ['<a href="%s">%s</a>' % (self.getURLPath(), self.name)] - diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py deleted file mode 100644 index a79011c..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/builders.py +++ /dev/null @@ -1,51 +0,0 @@ -from webkit.factories import * - -allWinBuilders = ['apple-slave-7', 'apple-slave-2'] # pewtermoose-slave-1 -allMacPPCBuilders = ['apple-slave-1', 'apple-slave-3', 'apple-slave-6'] -allMacIntelBuilders = ['bdash-slave-1', 'bdash-slave-2'] -macIntelPixelBuilders = ['apple-slave-8'] -allQtLinuxBuilders = ['webtroll-slave-1'] -allQtWinBuilders = ['qt-slave-2'] -allGtkLinuxBuilders = ['zecke-slave-1'] -allWxMacBuilders = ['kollivier-slave-1'] - -# apple-slave-4 is currently giving incomprehensible ICEs when compiling: -# WebKit/History/WebBackForwardList.mm: In function 'WebHistoryItem* -[WebBackForwardList currentItem](WebBackForwardList*, objc_selector*)': -# WebKit/History/WebBackForwardList.mm:178: internal compiler error: Bus error - -# apple-slave-5 is currently giving incomprehensible link errors: -# WebKitBuild/JavaScriptCore.build/Release/JavaScriptCore.build/Objects-normal/ppc/pcre_tables.o r_address (0x34a10d) field of relocation entry 12 in section (__DWARFA,__debug_info) out of range -# /usr/bin/libtool: internal link edit command failed - - -_builders = [('trunk-mac-ppc-release', StandardBuildFactory, allMacPPCBuilders, False), - ('trunk-mac-intel-release', StandardBuildFactory, allMacIntelBuilders, False), -# ('trunk-mac-ppc-debug', LeakBuildFactory, allMacPPCBuilders, False), - ('trunk-mac-intel-debug', LeakBuildFactory, allMacIntelBuilders, False), - ('trunk-mac-intel-pixel', PixelTestBuildFactory, macIntelPixelBuilders, False), -# ('trunk-win-release', Win32BuildFactory, allWinBuilders, False), - ('trunk-win-debug', Win32BuildFactory, allWinBuilders, False), - ('trunk-qt-linux-release', QtBuildFactory, allQtLinuxBuilders, False), - ('trunk-qt-win-release', QtBuildFactory, allQtWinBuilders, False), - ('trunk-gtk-linux-release', GtkBuildFactory, allGtkLinuxBuilders, False), - ('trunk-wx-mac-debug', WxBuildFactory, allWxMacBuilders, False), - -# ('trunk-mac-intel-coverage', CoverageDataBuildFactory, ['bdash-slave-1'], True), -# ('trunk-mac-intel-nosvg', NoSVGBuildFactory, ['bdash-slave-2'], True), - -# ('stable-mac-ppc-release', StandardBuildFactory, allMacPPCBuilders, False), -# ('stable-mac-intel-release', StandardBuildFactory, allMacIntelBuilders, False), -# ('stable-mac-ppc-debug', LeakBuildFactory, allMacPPCBuilders, False), -# ('stable-mac-intel-debug', LeakBuildFactory, allMacIntelBuilders, False), -# ('stable-win-release', Win32BuildFactory, allWinBuilders, False), - ] - -def getBuilders(): - result = [] - for name, factory, slaves, periodic in _builders: - result.append({'name': name, - 'slavenames': slaves, - 'builddir': name, - 'factory': factory(), - 'periodic': periodic}) - return result diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py deleted file mode 100644 index 59eb9cd..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/factories.py +++ /dev/null @@ -1,109 +0,0 @@ -from webkit.steps import * -from buildbot.process import factory - -s = factory.s - -class BuildFactory(factory.BuildFactory): - useProgress = False - def __init__(self): - factory.BuildFactory.__init__(self, [s(CheckOutSource)]) - -class StandardBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(SetConfiguration, configuration="release")) - self.addCompileStep() - self.addJavaScriptCoreTestStep() - self.addLayoutTestStep() - self.steps.append(s(UploadLayoutResults)) -# self.steps.append(s(UploadDiskImage)) - - def addCompileStep(self): - self.steps.append(s(CompileWebKit, configuration="release")) - - def addJavaScriptCoreTestStep(self): - self.steps.append(s(JavaScriptCoreTest)) - - def addLayoutTestStep(self): - self.steps.append(s(LayoutTest)) - - -class NoSVGBuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(CompileWebKitNoSVG, configuration="release")) - - -class PixelTestBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(SetConfiguration, configuration="release")) - self.steps.append(s(CompileWebKit, configuration="release")) - self.steps.append(s(PixelLayoutTest)) - self.steps.append(s(UploadLayoutResults)) - - -class LeakBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(SetConfiguration, configuration="debug")) - self.steps.append(s(CompileWebKit, configuration="debug")) - self.steps.append(s(JavaScriptCoreTest)) - self.steps.append(s(LeakTest)) - self.steps.append(s(UploadLayoutResults)) -# self.steps.append(s(UploadDiskImage)) - - -class PageLoadTestBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(CompileWebKit, configuration="release")) - self.steps.append(s(PageLoadTest)) - - -class Win32BuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(InstallWin32Dependencies)) - self.steps.append(s(SetConfiguration, configuration="debug")) - self.steps.append(s(CompileWebKitWindows, configuration="debug")) - - def addLayoutTestStep(self): - self.steps.append(s(LayoutTestWindows)) - -class GtkBuildFactory(StandardBuildFactory): - def addCompileStep(self): -# self.steps.append(s(CleanWebKitGtk, configuration="release")) - self.steps.append(s(CompileWebKitGtk, configuration="release")) - - def addJavaScriptCoreTestStep(self): - self.steps.append(s(JavaScriptCoreTestGtk)) - - def addLayoutTestStep(self): - pass - - -class WxBuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(CleanWebKitWx, configuration="release")) - self.steps.append(s(CompileWebKitWx, configuration="release")) - - def addJavaScriptCoreTestStep(self): - self.steps.append(s(JavaScriptCoreTestWx)) - - def addLayoutTestStep(self): - pass - - -class QtBuildFactory(StandardBuildFactory): - def addCompileStep(self): - self.steps.append(s(CleanWebKit, configuration="release")) - self.steps.append(s(CompileWebKit, configuration="release")) - - def addLayoutTestStep(self): - pass # self.steps.append(s(LayoutTestQt)) - - -class CoverageDataBuildFactory(BuildFactory): - def __init__(self): - BuildFactory.__init__(self) - self.steps.append(s(GenerateCoverageData)) - self.steps.append(s(UploadCoverageData)) diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py deleted file mode 100644 index 4bece4f..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/schedulers.py +++ /dev/null @@ -1,16 +0,0 @@ -from buildbot.scheduler import AnyBranchScheduler, Periodic - -def getSchedulers(builders): - builders = map(lambda builder: (builder['name'], builder['periodic']), builders) - trunkBuilders = [name for name, periodic in builders if name.startswith('trunk-') and not periodic] - trunkBuilders.sort() - stableBuilders = [name for name, periodic in builders if name.startswith('stable-') and not periodic] - stableBuilders.sort() - periodicBuilders = [name for name, periodic in builders if periodic] - periodicBuilders.sort() - - trunk = AnyBranchScheduler(name="trunk", branches=['trunk'], treeStableTimer=90, builderNames=trunkBuilders) -# stable = AnyBranchScheduler(name="stable", branches=['branches/Safari-3-1-branch'], treeStableTimer=90, builderNames=stableBuilders) - periodic = Periodic("periodic", periodicBuilders, 6 * 60 * 60) - - return [trunk, periodic] diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py deleted file mode 100644 index a7228ef..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/status.py +++ /dev/null @@ -1,19 +0,0 @@ -from buildbot.status import html, mail, words - -web = html.WebStatus(http_port=8010) - -allBuildsEmail = mail.MailNotifier(fromaddr="buildbot@webkit.org", - extraRecipients=["mark+webkit-builds@bdash.net.nz"], - sendToInterestedUsers=False) -breakageEmail = mail.MailNotifier(fromaddr="buildbot@webkit.org", - lookup=mail.Domain("webkit.org"), - mode="failing") - -IRC = words.IRC(host="irc.freenode.net", - nick="webkit-build", - channels=["#webkit-build"], -# announceAllBuilds=True - ) - -def getStatusListeners(): - return [web, allBuildsEmail, IRC] diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py deleted file mode 100644 index e518c2c..0000000 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/webkit/steps.py +++ /dev/null @@ -1,262 +0,0 @@ -from webkit.basesteps import ShellCommand, SVN, Test, Compile, UploadCommand -from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS - -class CheckOutSource(SVN): - baseURL = "http://svn.webkit.org/repository/webkit/" - mode = "update" - def __init__(self, *args, **kwargs): - SVN.__init__(self, baseURL=self.baseURL, defaultBranch="trunk", mode=self.mode, *args, **kwargs) - -class SetConfiguration(ShellCommand): - command = ["perl", "./WebKitTools/Scripts/set-webkit-configuration"] - - def __init__(self, *args, **kwargs): - configuration = kwargs.pop('configuration') - self.command = self.command + ['--' + configuration] - self.name = "set-configuration-%s" % (configuration, ) - self.description = ["set configuration %s" % (configuration, )] - self.descriptionDone = ["set configuration %s" % (configuration, )] - ShellCommand.__init__(self, *args, **kwargs) - - -class LayoutTest(Test): - name = "layout-test" - description = ["layout-tests running"] - descriptionDone = ["layout-tests"] - command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-new-test-results", "--no-sample-on-timeout", "--results-directory", "layout-test-results"] - - def commandComplete(self, cmd): - Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - incorrectLayoutLines = [line for line in logText.splitlines() if line.find('had incorrect layout') >= 0 or (line.find('test case') >= 0 and (line.find(' crashed') >= 0 or line.find(' timed out') >= 0))] - self.incorrectLayoutLines = incorrectLayoutLines - - def evaluateCommand(self, cmd): - if self.incorrectLayoutLines or cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.incorrectLayoutLines: - return self.incorrectLayoutLines - - return [self.name] - - -class JavaScriptCoreTest(Test): - name = "jscore-test" - description = ["jscore-tests running"] - descriptionDone = ["jscore-tests"] - command = ["perl", "./WebKitTools/Scripts/run-javascriptcore-tests"] - logfiles = {'results': 'JavaScriptCore/tests/mozilla/actual.html'} - - def commandComplete(self, cmd): - Test.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - statusLines = [line for line in logText.splitlines() if line.find('regression') >= 0 and line.find(' found.') >= 0] - if statusLines and statusLines[0].split()[0] != '0': - self.regressionLine = statusLines[0] - else: - self.regressionLine = None - - def evaluateCommand(self, cmd): - if self.regressionLine: - return FAILURE - - if cmd.rc != 0: - return FAILURE - - return SUCCESS - - def getText(self, cmd, results): - return self.getText2(cmd, results) - - def getText2(self, cmd, results): - if results != SUCCESS and self.regressionLine: - return [self.name, self.regressionLine] - - return [self.name] - -class PixelLayoutTest(LayoutTest): - name = "pixel-layout-test" - description = ["pixel-layout-tests running"] - descriptionDone = ["pixel-layout-tests"] - command = LayoutTest.command + ["--pixel", "--tolerance", "0.1"] - - -class LeakTest(LayoutTest): - command = ["perl", "./WebKitTools/Scripts/run-webkit-tests", "--no-launch-safari", "--no-sample-on-timeout", "--leaks", "--results-directory", "layout-test-results"] - - def commandComplete(self, cmd): - LayoutTest.commandComplete(self, cmd) - - logText = cmd.logs['stdio'].getText() - lines = logText.splitlines() - leakLines = [line for line in lines if line.find('total leaks found!') >= 0] - leakLines += [line for line in lines if line.find('LEAK: ') >= 0] - leakLines = [' '.join(x.split()[1:]) for x in leakLines] - - leakSummary = {} - for line in leakLines: - count, key = line.split(' ', 1) - if key.find('total leaks found!') >= 0: - key = 'allocations found by "leaks" tool' - - leakSummary[key] = leakSummary.get(key, 0) + int(count) - - leakSummaryLines = [] - for key in sorted(leakSummary.keys()): - leakSummaryLines.append('%s %s' % (leakSummary[key], key)) - - self.incorrectLayoutLines += leakSummaryLines - - -class UploadLayoutResults(UploadCommand, ShellCommand): - name = "upload-results" - description = ["uploading results"] - descriptionDone = ["uploaded-results"] - command = "echo Disabled for now" - - def __init__(self, *args, **kwargs): - ShellCommand.__init__(self, *args, **kwargs) - - def setBuild(self, build): - ShellCommand.setBuild(self, build) - self.initializeForUpload() - - self.command = ''' - if [[ -d layout-test-results ]]; then \ - find layout-test-results -type d -print0 | xargs -0 chmod ug+rx; \ - find layout-test-results -type f -print0 | xargs -0 chmod ug+r; \ - rsync -rlvzP --rsync-path=/home/buildresults/bin/rsync layout-test-results/ %s && rm -rf layout-test-results; \ - fi; \ - CRASH_LOG=~/Library/Logs/CrashReporter/DumpRenderTree*.crash*; \ - if [[ -f $(ls -1 $CRASH_LOG | head -n 1 ) ]]; then \ - chmod ug+r $CRASH_LOG; \ - rsync -rlvzP --rsync-path=/home/buildresults/bin/rsync $CRASH_LOG %s && rm -rf $CRASH_LOG; \ - fi; ''' % (self.getRemotePath(), self.getRemotePath()) - - self.addFactoryArguments(command=self.command) - - -class CompileWebKit(Compile): - command = ["perl", "./WebKitTools/Scripts/build-webkit"] - env = {'WEBKITSUPPORTLIBRARIESZIPDIR': 'C:\\cygwin\\home\\buildbot', 'MFLAGS':''} - def __init__(self, *args, **kwargs): - configuration = kwargs.pop('configuration') - - self.name = "compile-" + configuration - self.description = ["compiling " + configuration] - self.descriptionDone = ["compiled " + configuration] - - Compile.__init__(self, env=self.env, *args, **kwargs) - -class CleanWebKit(CompileWebKit): - command = CompileWebKit.command + ['--clean'] - description = ['cleaning'] - descriptionDone = ['cleaned'] - -class CompileWebKitNoSVG(CompileWebKit): - command = 'rm -rf WebKitBuild && perl ./WebKitTools/Scripts/build-webkit --no-svg' - -class CompileWebKitGtk(CompileWebKit): - command = ['perl', './WebKitTools/Scripts/build-webkit', '--gtk', '--qmake=qmake-qt4'] - -class CleanWebKitGtk(CompileWebKitGtk): - command = CompileWebKitGtk.command + ['--clean'] - description = ['cleaning'] - descriptionDone = ['cleaned'] - -class CompileWebKitWx(CompileWebKit): - command = ['perl', './WebKitTools/Scripts/build-webkit', '--wx'] - -class CleanWebKitWx(CompileWebKitWx): - command = CompileWebKitWx.command + ['--clean'] - description = ['cleaning'] - descriptionDone = ['cleaned'] - -class CompileWebKitWindows(UploadCommand, CompileWebKit): - def setBuild(self, build): - CompileWebKit.setBuild(self, build) - self.initializeForUpload() - - self.command = '''\ - ./WebKitTools/Scripts/build-webkit; \ - RESULT=$? - for log in $(find WebKitBuild/*/*/*/*.htm); do \ - chmod ug+r $log; \ - REMOTE_NAME=$(echo $log | sed -e 's|WebKitBuild/obj/||' -e 's|/Release/|-|' -e 's|/Debug/|-|'); \ - rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" $log %s/$REMOTE_NAME && rm $log; \ - done; \ - exit $RESULT;''' % (self.getRemotePath(), ) - - self.addFactoryArguments(command=self.command) - -class LayoutTestWindows(LayoutTest): - env = {'WEBKIT_TESTFONTS': 'C:\\cygwin\\home\\buildbot\\WebKitTestFonts'} - - def __init__(self, *args, **kwargs): - return LayoutTest.__init__(self, env=self.env, *args, **kwargs) - - -class JavaScriptCoreTestGtk(JavaScriptCoreTest): - command = JavaScriptCoreTest.command + ['--gtk'] - -class JavaScriptCoreTestWx(JavaScriptCoreTest): - command = JavaScriptCoreTest.command + ['--wx'] - -class LayoutTestQt(LayoutTest): - command = LayoutTest.command + ['--qt'] - -class InstallWin32Dependencies(ShellCommand): - description = ["installing Windows dependencies"] - descriptionDone = ["installed Windows dependencies"] - command = ["perl", "./WebKitTools/Scripts/update-webkit-auxiliary-libs"] - - -# class UploadDiskImage(UploadCommand, ShellCommand): -# description = ["uploading disk image"] -# descriptionDone = ["uploaded disk image"] -# name = "upload-disk-image" - -# def __init__(self, *args, **kwargs): -# UploadCommand.__init__(self, *args, **kwargs) -# self.command = 'umask 002 && ./WebKitTools/BuildSlaveSupport/build-launcher-app && ./WebKitTools/BuildSlaveSupport/build-launcher-dmg --upload-to-host %s' % (self.getRemotePath(), ) -# ShellCommand.__init__(self, *args, **kwargs) - -class GenerateCoverageData(Compile): - command = ["perl", "./WebKitTools/Scripts/generate-coverage-data"] - description = ["generating coverage data"] - descriptionDone = ["generated coverage data"] - - -class UploadCoverageData(UploadCommand, ShellCommand): - name = "upload-coverage-data" - description = ["uploading coverage data"] - descriptionDone = ["uploaded-coverage-data"] - command = "echo Disabled for now" - - def __init__(self, *args, **kwargs): - ShellCommand.__init__(self, *args, **kwargs) - - def setBuild(self, build): - ShellCommand.setBuild(self, build) - self.initializeForUpload() - - self.command = '''\ - if [[ -d WebKitBuild/Coverage/html ]]; then \ - find WebKitBuild/Coverage/html -type d -print0 | xargs -0 chmod ug+rx; \ - find WebKitBuild/Coverage/html -type f -print0 | xargs -0 chmod ug+r; \ - rsync -rlvzP --rsync-path="/home/buildresults/bin/rsync" WebKitBuild/Coverage/html/ %s && rm -rf WebKitBuild/Coverage/html; \ - fi;''' % (self.getRemotePath(), ) - - self.addFactoryArguments(command=self.command) - - def getURLPath(self): - return "/results/code-coverage/" |