Closed Bug 464692 Opened 16 years ago Closed 16 years ago

unit test builders should have a BuildFactory

Categories

(Release Engineering :: General, defect, P2)

x86
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: catlee, Assigned: catlee)

References

Details

Attachments

(4 files, 2 obsolete files)

The unit test builders in unittest_master.py should have a BuildFactory to generate all the build steps, so that all the platforms can share the same factory.
Attachment #347967 - Flags: review?(bhearsum)
Attachment #347967 - Flags: review?(bhearsum) → review-
Comment on attachment 347967 [details] [diff] [review]
create a BuildFactory subclass to handle unit tests

One overall comment first: This should go in factory.py instead of this file.

>diff -r 35f76a9c32c5 mozilla2-staging/unittest_master.py
>+class UnittestBuildFactory(BuildFactory):
>+    def addPrintChangesetStep(self):

style nit: __init__ should be the first method listed in a class. The contents of this method are fine.

>+        self.addStep(ShellCommand,
>+            command=['rm', '-rf', '../*-nightly/build'],
>+            description=['cleaning', 'old', 'builds'],
>+            descriptionDone=['clean', 'old', 'builds'],
>+            warnOnFailure=True,
>+            flunkOnFailure=False)
>+

Style nit on these:
Since they'll be going in factory.py please use the same style as the rest of that file:
self.addStep(ShellCommand,
 foo=bar,
 blah=crap
)

The overall contents of this patch are great - I <3 BuildFactory 's. Please fix the nit's above and move this to factory.py and we'll be good to go here.
Attachment #347967 - Attachment is obsolete: true
Attachment #348229 - Flags: review?(bhearsum)
Attachment #348230 - Flags: review?(bhearsum)
Attachment #348229 - Flags: review?(bhearsum) → review+
Comment on attachment 348229 [details] [diff] [review]
[checked in] Use UnittestBuildFactory from buildbotcustom

>diff -r be9054574658 mozilla2-staging/unittest_master.py
>--- a/mozilla2-staging/unittest_master.py	Fri Nov 14 13:43:35 2008 -0500
>+++ b/mozilla2-staging/unittest_master.py	Fri Nov 14 14:46:30 2008 -0500
>@@ -23,35 +23,24 @@
> #
> # Contributor(s):
> #   Rob Campbell <rcampbell@mozilla.com>
> #   Chris Cooper <ccooper@mozilla.com>
> #   Ben Hearsum <bhearsum@mozilla.com>
> # ***** END LICENSE BLOCK *****
> 
> import os.path
>-from buildbot.process import factory
> from buildbot.scheduler import Scheduler, Periodic
> from buildbot.status import tinderbox
>-from buildbot.steps.source import Mercurial
>-from buildbot.steps.shell import Compile, ShellCommand, WithProperties
> 
>-import buildbotcustom.env
> import buildbotcustom.misc
>-import buildbotcustom.unittest.steps
>-import buildbotcustom.steps.misc
>-reload(buildbotcustom.env)
> reload(buildbotcustom.misc)
>-reload(buildbotcustom.unittest.steps)
>-reload(buildbotcustom.steps.misc)
> 
>-from buildbotcustom.env import *
> from buildbotcustom.misc import isHgPollerTriggered
>-from buildbotcustom.unittest.steps import *
>-from buildbotcustom.steps.misc import CreateDir, TinderboxShellCommand
>+from buildbotcustom.process.factory import UnittestBuildFactory
> 
> import unittest_config
> reload(unittest_config)
> from unittest_config import *
> 
> import config as nightly_config
> reload(nightly_config)
> 
>@@ -107,516 +96,159 @@ schedulers.append(Scheduler(
> # the 'builders' list defines the Builders. Each one is configured with a
> # dictionary, using the following keys:
> #  name (required): the name used to describe this bilder
> #  slavename (required): which slave to use, must appear in c['bots']
> #  builddir (required): which subdirectory to run the builder in
> #  factory (required): a BuildFactory to define how the build is run
> #  periodicBuildTime (optional): if set, force a build every N seconds
> 
>-
>-# the first BuildStep is typically responsible for obtaining a copy of the
>-# change_source. There are source-obtaining Steps in buildbot/process/step.py for
>-# CVS, SVN, and others.
>-
>-def addPrintChangesetStep(factory, env={}):
>-    changesetLink = '<a href=http://hg.mozilla.org/mozilla-central/index.cgi/rev/%(got_revision)s title="Built from revision %(got_revision)s">rev:%(got_revision)s</a>'
>-    factory.addStep(ShellCommand(
>-        command=['echo', 'TinderboxPrint:', WithProperties(changesetLink)],
>-        env=env
>-    ))
>-
>-def addPrintTraceMonkeyChangesetStep(factory, env={}):
>-    changesetLink = '<a href=http://hg.mozilla.org/tracemonkey/index.cgi/rev/%(got_revision)s title="Built from revision %(got_revision)s">rev:%(got_revision)s</a>'
>-    factory.addStep(ShellCommand(
>-        command=['echo', 'TinderboxPrint:', WithProperties(changesetLink)],
>-        env=env
>-    ))
>-
>-def addCleanStep(factory, env={}):
>-    factory.addStep(ShellCommand,
>-	command=['bash', '-c', 'rm -rf ../*-nightly/build'],
>-	env = env,
>-	description=['cleaning', 'old', 'builds'],
>-	descriptionDone=['clean', 'old', 'builds'],
>-	warnOnFailure=True,
>-	flunkOnFailure=False)
>-
> ##
> ## Linux UnitTest
> ##
>-
>-moz2_linux_unittest_factory = factory.BuildFactory()
>-addCleanStep(moz2_linux_unittest_factory)
>-moz2_linux_unittest_factory.addStep(Mercurial, mode='update',
>-    baseURL='http://hg.mozilla.org/',
>-    defaultBranch='mozilla-central')
>-addPrintChangesetStep(moz2_linux_unittest_factory)
>-moz2_linux_unittest_factory.addStep(ShellCommand,
>-    name="buildbot configs",
>-    command=['hg', 'clone', nightly_config.CONFIG_REPO_URL, 'mozconfigs'],
>-    flunkOnFailure=False,
>-    workdir='.'
>-)
>-moz2_linux_unittest_factory.addStep(ShellCommand, name="copy mozconfig",
>-    command=['cp',
>-             'mozconfigs/%s/linux-unittest/mozconfig' % \
>-               nightly_config.CONFIG_SUBDIR,
>-             'build/.mozconfig'],
>-    workdir='.')
>-moz2_linux_unittest_factory.addStep(ShellCommand, name='mozconfig contents',
>-    command=['cat', '.mozconfig'])
>-moz2_linux_unittest_factory.addStep(Compile,
>-    warningPattern='',
>-    command=['make', '-f', 'client.mk', 'build'])
>-moz2_linux_unittest_factory.addStep(MozillaCheck, 
>-    warnOnWarnings=True,
>-    timeout=60*5,
>-    workdir="build/objdir")
>-moz2_linux_unittest_factory.addStep(CreateProfile,
>-        warnOnWarnings=True,
>-        workdir="build",
>-        command = r'python testing/tools/profiles/createTestingProfile.py --clobber --binary objdir/dist/bin/firefox',
>-        env=MozillaEnvironments['linux-centos-unittest'],
>-        clobber=True)
>-moz2_linux_unittest_factory.addStep(MozillaUnixReftest, warnOnWarnings=True,
>-    workdir="build/layout/reftests",
>-    timeout=60*5,
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_unittest_factory.addStep(MozillaUnixCrashtest, warnOnWarnings=True,
>-    workdir="build/testing/crashtest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_unittest_factory.addStep(MozillaMochitest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    timeout=60*5,
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_unittest_factory.addStep(MozillaMochichrome, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_unittest_factory.addStep(MozillaBrowserChromeTest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_unittest_factory.addStep(MozillaA11YTest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
> 
> mozilla2_firefox_unix_test_builder = {
>     'name': 'Linux mozilla-central unit test',
>     'slavenames': ['moz2-linux-slave1', 'moz2-linux-slave02',
>                    'moz2-linux-slave03', 'moz2-linux-slave04',
>                    'moz2-linux-slave05', 'moz2-linux-slave06',
>                    'moz2-linux-slave07', 'moz2-linux-slave08',
>                    'moz2-linux-slave09', 'moz2-linux-slave10',
>                    'moz2-linux-slave11', 'moz2-linux-slave12',
>                    'moz2-linux-slave13', 'moz2-linux-slave14',
>                    'moz2-linux-slave15', 'moz2-linux-slave16',
>                    'moz2-linux-slave17', 'moz2-linux-slave18'],
>     'builddir': 'mozilla-central-linux-unittest',
>-    'factory': moz2_linux_unittest_factory,
>+    'factory': UnittestBuildFactory(
>+        platform='linux',
>+        config_repo_url = nightly_config.CONFIG_REPO_URL,
>+        config_dir = nightly_config.CONFIG_SUBDIR,
>+        branch = 'mozilla-central'
>+    ),
>     'category': 'mozilla-central',
> }
> 
> builders.append(mozilla2_firefox_unix_test_builder)
> 
> ##
> ## Linux TraceMonkey Unittest
> ##
>-
>-moz2_linux_tracemonkey_unittest_factory = factory.BuildFactory()
>-addCleanStep(moz2_linux_tracemonkey_unittest_factory)
>-moz2_linux_tracemonkey_unittest_factory.addStep(Mercurial, mode='update',
>-    baseURL='http://hg.mozilla.org/',
>-    defaultBranch='tracemonkey')
>-addPrintTraceMonkeyChangesetStep(moz2_linux_tracemonkey_unittest_factory)
>-moz2_linux_tracemonkey_unittest_factory.addStep(ShellCommand,
>-    name="buildbot configs",
>-    command=['hg', 'clone', nightly_config.CONFIG_REPO_URL, 'mozconfigs'],
>-    workdir='.'
>-)
>-moz2_linux_tracemonkey_unittest_factory.addStep(ShellCommand, name="copy mozconfig",
>-    command=['cp',
>-             'mozconfigs/%s/linux-unittest/mozconfig' % \
>-               nightly_config.CONFIG_SUBDIR,
>-             'build/.mozconfig'],
>-    workdir='.')
>-moz2_linux_tracemonkey_unittest_factory.addStep(ShellCommand, name='mozconfig contents',
>-    command=['cat', '.mozconfig'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(Compile,
>-    warningPattern='',
>-    command=['make', '-f', 'client.mk', 'build'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaCheck, 
>-    warnOnWarnings=True,
>-    timeout=60*5,
>-    workdir="build/objdir")
>-moz2_linux_tracemonkey_unittest_factory.addStep(CreateProfile,
>-        warnOnWarnings=True,
>-        workdir="build",
>-        command = r'python testing/tools/profiles/createTestingProfile.py --clobber --binary objdir/dist/bin/firefox',
>-        env=MozillaEnvironments['linux-centos-unittest'],
>-        clobber=True)
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaUnixReftest, warnOnWarnings=True,
>-    workdir="build/layout/reftests",
>-    timeout=60*5,
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaUnixCrashtest, warnOnWarnings=True,
>-    workdir="build/testing/crashtest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaMochitest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    timeout=60*5,
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaMochichrome, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaBrowserChromeTest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
>-moz2_linux_tracemonkey_unittest_factory.addStep(MozillaA11YTest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['linux-centos-unittest'])
> 
> mozilla2_firefox_unix_test_builder2 = {
>     'name': 'Linux tracemonkey unit test',
>     'slavenames': ['moz2-linux-slave1', 'moz2-linux-slave02',
>                    'moz2-linux-slave03', 'moz2-linux-slave04',
>                    'moz2-linux-slave05', 'moz2-linux-slave06',
>                    'moz2-linux-slave07', 'moz2-linux-slave08',
>                    'moz2-linux-slave09', 'moz2-linux-slave10',
>                    'moz2-linux-slave11', 'moz2-linux-slave12',
>                    'moz2-linux-slave13', 'moz2-linux-slave14',
>                    'moz2-linux-slave15', 'moz2-linux-slave16',
>                    'moz2-linux-slave17', 'moz2-linux-slave18'],
>     'builddir': 'tracemonkey-linux-unittest',
>-    'factory': moz2_linux_unittest_factory,
>+    'factory': UnittestBuildFactory(
>+        platform='linux',
>+        config_repo_url = nightly_config.CONFIG_REPO_URL,
>+        config_dir = nightly_config.CONFIG_SUBDIR,
>+        branch = 'tracemonkey'
>+    ),
>     'category': 'tracemonkey',
> }
> 
> builders.append(mozilla2_firefox_unix_test_builder2)
> 
> ##
> ## Mac UnitTest
> ##
> 
>-moz2_darwin_unittest_factory = factory.BuildFactory()
>-addCleanStep(moz2_darwin_unittest_factory)
>-moz2_darwin_unittest_factory.addStep(Mercurial, mode='update',
>-    baseURL='http://hg.mozilla.org/',
>-    defaultBranch='mozilla-central')
>-addPrintChangesetStep(moz2_darwin_unittest_factory)
>-moz2_darwin_unittest_factory.addStep(ShellCommand,
>-    name="buildbot configs",
>-    command=['hg', 'clone', nightly_config.CONFIG_REPO_URL, 'mozconfigs'],
>-    flunkOnFailure=False,
>-    workdir='.'
>-)
>-moz2_darwin_unittest_factory.addStep(ShellCommand, name="copy mozconfig",
>-    command=['cp',
>-             'mozconfigs/%s/macosx-unittest/mozconfig' % \
>-               nightly_config.CONFIG_SUBDIR,
>-             'build/.mozconfig'],
>-    workdir='.')
>-moz2_darwin_unittest_factory.addStep(ShellCommand, name='mozconfig contents',
>-    command=['cat', '.mozconfig'])
>-moz2_darwin_unittest_factory.addStep(Compile,
>-    warningPattern='',
>-    command=['make', '-f', 'client.mk', 'build'])
>-moz2_darwin_unittest_factory.addStep(MozillaCheck, 
>-    warnOnWarnings=True,
>-    timeout=60*5,
>-    workdir="build/objdir")
>-moz2_darwin_unittest_factory.addStep(CreateProfile,
>-    warnOnWarnings=True,
>-    workdir="build",
>-    command = r'python testing/tools/profiles/createTestingProfile.py --clobber --binary objdir/dist/bin/firefox',
>-    env=MozillaEnvironments['mac-osx-unittest'],
>-    clobber=True)
>-moz2_darwin_unittest_factory.addStep(MozillaOSXReftest, warnOnWarnings=True,
>-    workdir="build/layout/reftests",
>-    timeout=60*5,
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_unittest_factory.addStep(MozillaOSXCrashtest, warnOnWarnings=True,
>-    workdir="build/testing/crashtest",
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_unittest_factory.addStep(MozillaOSXMochitest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    timeout=60*5,
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_unittest_factory.addStep(MozillaOSXMochichrome, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    leakThreshold="8",
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_unittest_factory.addStep(MozillaOSXBrowserChromeTest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-
> mozilla2_firefox_osx_test_builder = {
>     'name': 'OS X 10.5.2 mozilla-central unit test',
>     'slavenames': ['bm-xserve16', 'bm-xserve17', 'bm-xserve18', 'bm-xserve19',
>                    'bm-xserve22',
>                    'moz2-darwin9-slave01', 'moz2-darwin9-slave02',
>                    'moz2-darwin9-slave03', 'moz2-darwin9-slave04'],
>     'builddir': 'mozilla-central-macosx-unittest',
>-    'factory': moz2_darwin_unittest_factory,
>+    'factory': UnittestBuildFactory(
>+        platform='macosx',
>+        config_repo_url = nightly_config.CONFIG_REPO_URL,
>+        config_dir = nightly_config.CONFIG_SUBDIR,
>+        branch = 'mozilla-central'
>+    ),
>     'category': 'mozilla-central',
> }
> 
> builders.append(mozilla2_firefox_osx_test_builder)
> 
> ##
> ## Mac TraceMonkey UnitTest
> ##
> 
>-moz2_darwin_tracemonkey_unittest_factory = factory.BuildFactory()
>-addCleanStep(moz2_darwin_tracemonkey_unittest_factory)
>-moz2_darwin_tracemonkey_unittest_factory.addStep(Mercurial, mode='update',
>-    baseURL='http://hg.mozilla.org/',
>-    defaultBranch='tracemonkey')
>-addPrintTraceMonkeyChangesetStep(moz2_darwin_unittest_factory)
>-moz2_darwin_tracemonkey_unittest_factory.addStep(ShellCommand,
>-    name="buildbot configs",
>-    command=['hg', 'clone', nightly_config.CONFIG_REPO_URL, 'mozconfigs'],
>-    workdir='.'
>-)
>-moz2_darwin_tracemonkey_unittest_factory.addStep(ShellCommand, name="copy mozconfig",
>-    command=['cp',
>-             'mozconfigs/%s/macosx-unittest/mozconfig' % \
>-               nightly_config.CONFIG_SUBDIR,
>-             'build/.mozconfig'],
>-    workdir='.')
>-moz2_darwin_tracemonkey_unittest_factory.addStep(ShellCommand, name='mozconfig contents',
>-    command=['cat', '.mozconfig'])
>-moz2_darwin_tracemonkey_unittest_factory.addStep(Compile,
>-    warningPattern='',
>-    command=['make', '-f', 'client.mk', 'build'])
>-moz2_darwin_tracemonkey_unittest_factory.addStep(MozillaCheck, 
>-    warnOnWarnings=True,
>-    timeout=60*5,
>-    workdir="build/objdir")
>-moz2_darwin_tracemonkey_unittest_factory.addStep(CreateProfile,
>-    warnOnWarnings=True,
>-    workdir="build",
>-    command = r'python testing/tools/profiles/createTestingProfile.py --clobber --binary objdir/dist/bin/firefox',
>-    env=MozillaEnvironments['mac-osx-unittest'],
>-    clobber=True)
>-moz2_darwin_tracemonkey_unittest_factory.addStep(MozillaOSXReftest, warnOnWarnings=True,
>-    workdir="build/layout/reftests",
>-    timeout=60*5,
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_tracemonkey_unittest_factory.addStep(MozillaOSXCrashtest, warnOnWarnings=True,
>-    workdir="build/testing/crashtest",
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_tracemonkey_unittest_factory.addStep(MozillaOSXMochitest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    timeout=60*5,
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_tracemonkey_unittest_factory.addStep(MozillaOSXMochichrome, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    leakThreshold="8",
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-moz2_darwin_tracemonkey_unittest_factory.addStep(MozillaOSXBrowserChromeTest, warnOnWarnings=True,
>-    workdir="build/objdir/_tests/testing/mochitest",
>-    env=MozillaEnvironments['mac-osx-unittest'])
>-
> mozilla2_firefox_osx_test_builder2 = {
>     'name': 'OS X 10.5.2 tracemonkey unit test',
>     'slavenames': ['bm-xserve16', 'bm-xserve17', 'bm-xserve18', 'bm-xserve19',
>                    'bm-xserve22',
>                    'moz2-darwin9-slave01', 'moz2-darwin9-slave02',
>                    'moz2-darwin9-slave03', 'moz2-darwin9-slave04'],
>     'builddir': 'tracemonkey-macosx-unittest',
>-    'factory': moz2_darwin_unittest_factory,
>+    'factory': UnittestBuildFactory(
>+        platform='macosx',
>+        config_repo_url = nightly_config.CONFIG_REPO_URL,
>+        config_dir = nightly_config.CONFIG_SUBDIR,
>+        branch = 'tracemonkey'
>+    ),
>     'category': 'tracemonkey',
> }
> 
> builders.append(mozilla2_firefox_osx_test_builder2)
> 
> ##
> ## Win2k3 UnitTest
> ##
>-
>-moz2_win32_unittest_factory = factory.BuildFactory()
>-
>-moz2_win32_unittest_factory.addStep(TinderboxShellCommand, name="kill sh",
>-    description='kill sh',
>-    descriptionDone="killed sh",
>-    command="pskill -t sh.exe",
>-    workdir="D:\\Utilities")
>-moz2_win32_unittest_factory.addStep(TinderboxShellCommand, name="kill make",
>-    description='kill make',
>-    descriptionDone="killed make",
>-    command="pskill -t make.exe",
>-    workdir="D:\\Utilities")
>-moz2_win32_unittest_factory.addStep(TinderboxShellCommand, name="kill firefox",
>-    description='kill firefox',
>-    descriptionDone="killed firefox",
>-    command="pskill -t firefox.exe",
>-    workdir="D:\\Utilities")
>-addCleanStep(moz2_win32_unittest_factory)
>-moz2_win32_unittest_factory.addStep(Mercurial, mode='update',
>-    baseURL='http://hg.mozilla.org/',
>-    defaultBranch='mozilla-central')
>-addPrintChangesetStep(moz2_win32_unittest_factory,
>-                      MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(ShellCommand,
>-    name="buildbot configs",
>-    command=['hg', 'clone', nightly_config.CONFIG_REPO_URL, 'mozconfigs'],
>-    flunkOnFailure=False,
>-    workdir='.'
>-)
>-moz2_win32_unittest_factory.addStep(ShellCommand, name="copy mozconfig",
>-    command=['cp',
>-             'mozconfigs/%s/win32-unittest/mozconfig' % \
>-               nightly_config.CONFIG_SUBDIR,
>-             'build/.mozconfig'],
>-    workdir='.')
>-moz2_win32_unittest_factory.addStep(ShellCommand, name="mozconfig contents",
>-    command=["type", ".mozconfig"],
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(Compile, 
>-    command=["make", "-f", "client.mk", "build"],
>-    timeout=60*20,
>-    warningPattern='', 
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(MozillaCheck, warnOnWarnings=True, 
>-    workdir="build\\objdir",
>-    timeout=60*5,
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(CreateProfileWin,
>-    warnOnWarnings=True,
>-    workdir="build",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'],
>-    command = r'python testing\tools\profiles\createTestingProfile.py --clobber --binary objdir\dist\bin\firefox.exe',
>-    clobber=True)
>-moz2_win32_unittest_factory.addStep(MozillaWin32Reftest, warnOnWarnings=True,
>-    workdir="build\\layout\\reftests",
>-    timeout=60*5,
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(MozillaWin32Crashtest, warnOnWarnings=True,
>-    workdir="build\\testing\\crashtest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(MozillaWin32Mochitest, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    timeout=60*5,
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-# Can use the regular build step here. Perl likes the PATHs that way anyway.
>-moz2_win32_unittest_factory.addStep(MozillaWin32Mochichrome, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(MozillaWin32BrowserChromeTest, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_unittest_factory.addStep(MozillaWin32A11YTest, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
> 
> firefox_trunk_win2k3_builder = {
>     'name': "WINNT 5.2 mozilla-central unit test",
>     'slavenames': ['moz2-win32-slave1', 'moz2-win32-slave02',
>                    'moz2-win32-slave03', 'moz2-win32-slave04',
>                    'moz2-win32-slave05', 'moz2-win32-slave06',
>                    'moz2-win32-slave07', 'moz2-win32-slave08',
>                    'moz2-win32-slave09', 'moz2-win32-slave10',
>                    'moz2-win32-slave11', 'moz2-win32-slave12',
>                    'moz2-win32-slave13', 'moz2-win32-slave14',
>                    'moz2-win32-slave15', 'moz2-win32-slave16',
>                    'moz2-win32-slave17', 'moz2-win32-slave18'],
>     'builddir': "mozilla-central-win32-unittest",
>-    'factory': moz2_win32_unittest_factory,
>+    'factory': UnittestBuildFactory(
>+        platform='win32',
>+        config_repo_url = nightly_config.CONFIG_REPO_URL,
>+        config_dir = nightly_config.CONFIG_SUBDIR,
>+        branch = 'mozilla-central'
>+    ),
>     'category': 'mozilla-central',
> }
> 
> builders.append(firefox_trunk_win2k3_builder)
> 
> ##
> ## Win2k3 TraceMonkey UnitTest
> ##
>-
>-moz2_win32_tracemonkey_unittest_factory = factory.BuildFactory()
>-
>-moz2_win32_tracemonkey_unittest_factory.addStep(TinderboxShellCommand, name="kill sh",
>-    description='kill sh',
>-    descriptionDone="killed sh",
>-    command="pskill -t sh.exe",
>-    workdir="D:\\Utilities")
>-moz2_win32_tracemonkey_unittest_factory.addStep(TinderboxShellCommand, name="kill make",
>-    description='kill make',
>-    descriptionDone="killed make",
>-    command="pskill -t make.exe",
>-    workdir="D:\\Utilities")
>-moz2_win32_tracemonkey_unittest_factory.addStep(TinderboxShellCommand, name="kill firefox",
>-    description='kill firefox',
>-    descriptionDone="killed firefox",
>-    command="pskill -t firefox.exe",
>-    workdir="D:\\Utilities")
>-addCleanStep(moz2_win32_tracemonkey_unittest_factory)
>-moz2_win32_tracemonkey_unittest_factory.addStep(Mercurial, mode='update',
>-    baseURL='http://hg.mozilla.org/',
>-    defaultBranch='tracemonkey')
>-addPrintTraceMonkeyChangesetStep(moz2_win32_unittest_factory,
>-                      MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(ShellCommand,
>-    name="buildbot configs",
>-    command=['hg', 'clone', nightly_config.CONFIG_REPO_URL, 'mozconfigs'],
>-    workdir='.'
>-)
>-moz2_win32_tracemonkey_unittest_factory.addStep(ShellCommand, name="copy mozconfig",
>-    command=['cp',
>-             'mozconfigs/%s/win32-unittest/mozconfig' % \
>-               nightly_config.CONFIG_SUBDIR,
>-             'build/.mozconfig'],
>-    workdir='.')
>-moz2_win32_tracemonkey_unittest_factory.addStep(ShellCommand, name="mozconfig contents",
>-    command=["type", ".mozconfig"],
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(Compile, 
>-    command=["make", "-f", "client.mk", "build"],
>-    timeout=60*20,
>-    warningPattern='', 
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaCheck, warnOnWarnings=True, 
>-    workdir="build\\objdir",
>-    timeout=60*5,
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(CreateProfileWin,
>-    warnOnWarnings=True,
>-    workdir="build",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'],
>-    command = r'python testing\tools\profiles\createTestingProfile.py --clobber --binary objdir\dist\bin\firefox.exe',
>-    clobber=True)
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaWin32Reftest, warnOnWarnings=True,
>-    workdir="build\\layout\\reftests",
>-    timeout=60*5,
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaWin32Crashtest, warnOnWarnings=True,
>-    workdir="build\\testing\\crashtest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaWin32Mochitest, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    timeout=60*5,
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-# Can use the regular build step here. Perl likes the PATHs that way anyway.
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaWin32Mochichrome, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaWin32BrowserChromeTest, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
>-moz2_win32_tracemonkey_unittest_factory.addStep(MozillaWin32A11YTest, warnOnWarnings=True,
>-    workdir="build\\objdir\\_tests\\testing\\mochitest",
>-    env=MozillaEnvironments['win32-vc8-mozbuild-unittest'])
> 
> firefox_trunk_win2k3_builder2 = {
>     'name': "WINNT 5.2 tracemonkey unit test",
>     'slavenames': ['moz2-win32-slave1', 'moz2-win32-slave02',
>                    'moz2-win32-slave03', 'moz2-win32-slave04',
>                    'moz2-win32-slave05', 'moz2-win32-slave06',
>                    'moz2-win32-slave07', 'moz2-win32-slave08',
>                    'moz2-win32-slave09', 'moz2-win32-slave10',
>                    'moz2-win32-slave11', 'moz2-win32-slave12',
>                    'moz2-win32-slave13', 'moz2-win32-slave14',
>                    'moz2-win32-slave15', 'moz2-win32-slave16',
>                    'moz2-win32-slave17', 'moz2-win32-slave18'],
>     'builddir': "tracemonkey-win32-unittest",
>-    'factory': moz2_win32_unittest_factory,
>+    'factory': UnittestBuildFactory(
>+        platform='win32',
>+        config_repo_url = nightly_config.CONFIG_REPO_URL,
>+        config_dir = nightly_config.CONFIG_SUBDIR,
>+        branch = 'tracemonkey'
>+    ),
>     'category': 'tracemonkey',
> }
> 
> builders.append(firefox_trunk_win2k3_builder2)
Comment on attachment 348230 [details] [diff] [review]
create a BuildFactory subclass to handle unit tests

>+        self.addStep(ShellCommand,
>+         name="buildbot configs",
>+         command=['hg', 'clone', self.config_repo_url, 'mozconfigs'],
>+         flunkOnFailure=False,
>+         workdir='.'
>+        )

I know this isn't strictly part of this bug, but since we're removing the configs in the previous step we should remove flunkOnFailure=False here - because only will be real now.

r=bhearsum with that change
Attachment #348230 - Flags: review?(bhearsum) → review-
Attachment #348230 - Attachment is obsolete: true
Attachment #348595 - Flags: review?(bhearsum)
Attachment #348595 - Attachment description: create a BuildFactory subclass to handle unit tests → [checked in] create a BuildFactory subclass to handle unit tests
Attachment #348595 - Flags: review?(bhearsum) → review+
Comment on attachment 348595 [details] [diff] [review]
[checked in] create a BuildFactory subclass to handle unit tests

Checking in process/factory.py;
/cvsroot/mozilla/tools/buildbotcustom/process/factory.py,v  <--  factory.py
new revision: 1.34; previous revision: 1.33
done
Comment on attachment 348229 [details] [diff] [review]
[checked in] Use UnittestBuildFactory from buildbotcustom

changeset:   511:1b9a0efc3ba7
Attachment #348229 - Attachment description: Use UnittestBuildFactory from buildbotcustom → [checked in] Use UnittestBuildFactory from buildbotcustom
Attachment #348764 - Flags: review?(bhearsum)
Comment on attachment 348764 [details] [diff] [review]
reload buildbotcustom.process.factory module

changeset:   513:239e5ac057db
Attachment #348764 - Flags: review?(bhearsum) → review+
Ok, this is running on staging-master right now.
Attachment #348772 - Flags: review?(bhearsum)
Priority: -- → P2
Attachment #348772 - Flags: review?(bhearsum) → review+
Attachment #348772 - Flags: checked‑in?
Comment on attachment 348772 [details] [diff] [review]
[checked in] don't pass in env keyword to Mercurial build step

Checking in factory.py;
/cvsroot/mozilla/tools/buildbotcustom/process/factory.py,v  <--  factory.py
new revision: 1.37; previous revision: 1.36
done
Attachment #348772 - Attachment description: don't pass in env keyword to Mercurial build step → [checked in] don't pass in env keyword to Mercurial build step
This has been running in staging for a while now.
Blocks: 465868
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Attachment #348772 - Flags: checked‑in? → checked‑in+
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: