diff options
author | Steve Block <steveblock@google.com> | 2009-10-08 17:19:54 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-10-20 00:41:58 +0100 |
commit | 231d4e3152a9c27a73b6ac7badbe6be673aa3ddf (patch) | |
tree | a6c7e2d6cd7bfa7011cc39abbb436142d7a4a7c8 /WebKitTools/BuildSlaveSupport | |
parent | e196732677050bd463301566a68a643b6d14b907 (diff) | |
download | external_webkit-231d4e3152a9c27a73b6ac7badbe6be673aa3ddf.zip external_webkit-231d4e3152a9c27a73b6ac7badbe6be673aa3ddf.tar.gz external_webkit-231d4e3152a9c27a73b6ac7badbe6be673aa3ddf.tar.bz2 |
Merge webkit.org at R49305 : Automatic merge by git.
Change-Id: I8968561bc1bfd72b8923b7118d3728579c6dbcc7
Diffstat (limited to 'WebKitTools/BuildSlaveSupport')
-rw-r--r-- | WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json | 36 | ||||
-rw-r--r-- | WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg | 81 |
2 files changed, 112 insertions, 5 deletions
diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json index b650b4c..2b8faf6 100644 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json +++ b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/config.json @@ -7,8 +7,15 @@ { "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-pixel-1", "platform": "mac-leopard" }, + { "name": "apple-macpro-1", "platform": "mac-snowleopard" }, + { "name": "apple-macpro-2", "platform": "mac-snowleopard" }, + { "name": "apple-windows-1", "platform": "win"}, { "name": "apple-windows-2", "platform": "win"}, { "name": "apple-windows-3", "platform": "win"}, @@ -16,7 +23,9 @@ { "name": "gtk-linux-slave-1", "platform": "gtk"}, - { "name": "szeged-linux-1", "platform": "qt"} + { "name": "szeged-linux-1", "platform": "qt"}, + + { "name": "google-slave-1", "platform": "chromium-win" } ], "builders": [ { "name": "Tiger Intel Release", "type": "BuildAndTest", "builddir": "tiger-intel-release", @@ -43,6 +52,19 @@ "platform": "mac-leopard", "configuration": "debug", "architectures": ["i386"], "slavenames": ["apple-xserve-3", "test-slave"] }, + { "name": "SnowLeopard Intel Release (Build)", "type": "Build", "builddir": "snowleopard-intel-release", + "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], + "triggers": ["snowleopard-intel-release-tests"], + "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", "test-slave"] + }, { "name": "Windows Release (Build)", "type": "Build", "builddir": "win-release", "platform": "win", "configuration": "release", "architectures": ["i386"], @@ -74,13 +96,20 @@ "name": "Qt Linux Release", "type": "BuildAndTest", "builddir": "qt-linux-release", "platform": "qt", "configuration": "release", "architectures": ["i386"], "slavenames": ["szeged-linux-1"] + }, + { + "name": "Chromium Win Release", "type": "ChromiumBuild", "builddir": "chromium-win-release", + "platform": "chromium-win", "configuration": "release", "architectures": ["i386"], + "slavenames": ["google-slave-1"] } ], "schedulers": [ { "type": "AnyBranchScheduler", "name": "trunk", "branches": ["trunk"], "treeStableTimer": 45.0, "builderNames": ["Tiger Intel Release", "Leopard Intel Release (Build)", "Leopard Intel Debug (Build)", + "SnowLeopard Intel Release (Build)", "SnowLeopard Intel Leaks", "Windows Release (Build)", "Windows Debug (Build)", - "GTK Linux Release", "Qt Linux Release"] + "GTK Linux Release", "Qt Linux Release", + "Chromium Win Release"] }, { "type": "Triggerable", "name": "leopard-intel-release-tests", "builderNames": ["Leopard Intel Release (Tests)"] @@ -88,6 +117,9 @@ { "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": "win-release-tests", "builderNames": ["Windows Release (Tests)"] }, diff --git a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg index 4d92436..6219b0d 100644 --- a/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg +++ b/WebKitTools/BuildSlaveSupport/build.webkit.org-config/master.cfg @@ -13,6 +13,7 @@ from buildbot.status.builder import SUCCESS, FAILURE, WARNINGS, SKIPPED from twisted.internet import defer +import re import simplejson WithProperties = properties.WithProperties @@ -47,6 +48,55 @@ class CheckOutSource(source.SVN): source.SVN.__init__(self, baseURL=self.baseURL, defaultBranch="trunk", mode=self.mode, *args, **kwargs) +# FIXME: Remove this step once Chromium WebKit port build system is decoupled from +# Chromium (https://bugs.webkit.org/show_bug.cgi?id=28396) +class UpdateChromiumSource(shell.ShellCommand): + command = ["gclient", "sync"] + name = "update-chromium" + description = ["updating chromium source"] + descriptionDone = ["updated"] + haltOnFailure = True + + def createSummary(self, log): + scraper = re.compile(r"^________ running '[^\n]+third_party[/\\]WebKit[^\n]+$\n(?:^[UA]\W+[^\n]+$\n)*^(?:Updated to|At) revision (\d+)", re.DOTALL | re.MULTILINE) + revisions = scraper.findall(log.getText()) + gotRevision = "??" # This matches SVN unknown revision response. + if len(revisions): + gotRevision = "r%s" % revisions[-1] + self.descriptionDone = ["updated", gotRevision] + + def start(self): + os = self.getProperty("fullPlatform").split('-')[1] + if os == "win": + self.setCommand(["gclient.bat", "sync"]) + revision = self.getProperty("revision") + if revision: + command = self.command[:] + command.append("--revision=src/third_party/WebKit@%d" % revision) + self.setCommand(command) + return shell.ShellCommand.start(self) + + +# FIXME: Remove this step once Chromium WebKit port build system is decoupled from +# Chromium (https://bugs.webkit.org/show_bug.cgi?id=28396) +class CompileChromiumWebKit(shell.ShellCommand): + command = ["python", "../../../scripts/slave/compile.py"] + name = "build-chromium" + description = ["compiling"] + descriptionDone = ["compiled"] + haltOnFailure = True + + def start(self): + os = self.getProperty("fullPlatform").split('-')[1] + command = self.command[:] + if os == "win": + command.extend(["--solution=webkit.sln", "--build-dir=src\\webkit", "--", "/project", "webcore"]) + elif os == "mac": + command.extend(["--solution=__solution__", "--build-dir=src/build", "--", "-project", "../webkit/webkit.xcodeproj", "-target", "webcore"]) + self.setCommand(command) + return shell.ShellCommand.start(self) + + class InstallWin32Dependencies(shell.Compile): description = ["installing dependencies"] descriptionDone = ["installed dependencies"] @@ -188,13 +238,19 @@ class RunWebKitTests(shell.Test): 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: ', '')) + + # FIXME: Detect and summarize leaks of RefCounted objects self.incorrectLayoutLines = incorrectLayoutLines def evaluateCommand(self, cmd): if self.incorrectLayoutLines: - if len(self.incorrectLayoutLines) == 1 and (self.incorrectLayoutLines[0].find('were new') >= 0 or self.incorrectLayoutLines[0].find('was new') >= 0): - return WARNINGS + 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 @@ -213,6 +269,12 @@ class RunWebKitTests(shell.Test): return [self.name] +class RunWebKitLeakTests(RunWebKitTests): + def start(self): + self.setCommand(self.command + ["--leaks"]) + return RunWebKitTests.start(self) + + class ArchiveTestResults(shell.ShellCommand): command = ["python", "./WebKitTools/BuildSlaveSupport/test-result-archive", WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"] @@ -257,6 +319,15 @@ class Factory(factory.BuildFactory): if platform == "win": self.addStep(InstallWin32Dependencies) +# FIXME: Remove this factory once Chromium WebKit port build system is decoupled from +# Chromium (https://bugs.webkit.org/show_bug.cgi?id=28396) +class ChromiumBuildFactory(factory.BuildFactory): + def __init__(self, platform, configuration, architectures): + factory.BuildFactory.__init__(self) + self.addStep(ConfigureBuild, platform=platform, configuration=configuration, architecture=" ".join(architectures), buildOnly=True) + self.addStep(UpdateChromiumSource) + self.addStep(CompileChromiumWebKit) + class BuildFactory(Factory): def __init__(self, platform, configuration, architectures, triggers): Factory.__init__(self, platform, configuration, architectures, True) @@ -277,15 +348,19 @@ class TestFactory(Factory): self.addStep(ExtractTestResults) class BuildAndTestFactory(Factory): + TestClass = RunWebKitTests def __init__(self, platform, configuration, architectures): Factory.__init__(self, platform, configuration, architectures, False) self.addStep(CompileWebKit) self.addStep(RunJavaScriptCoreTests) - self.addStep(RunWebKitTests) + self.addStep(self.TestClass) self.addStep(ArchiveTestResults) self.addStep(UploadTestResults) self.addStep(ExtractTestResults) +class BuildAndTestLeaksFactory(BuildAndTestFactory): + TestClass = RunWebKitLeakTests + def loadBuilderConfig(c): passwords = simplejson.load(open('passwords.json')) |