def test_mode_incremental_password_windows(self):
        self.setupStep(
            cvs.CVS(cvsroot=
                    ":pserver:dustin:[email protected]:/cvsroot",
                    cvsmodule="mozilla/browser/",
                    mode='incremental',
                    login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Root',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter)))
            # on Windows, this file does not contain the password, per
            # http://trac.buildbot.net/ticket/2355
            + Expect.behavior(
                uploadString(
                    ':pserver:[email protected]:/cvsroot')) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Repository',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(uploadString('mozilla/browser/')) + 0,
            ExpectShell(workdir='wkdir',
                        command=['cvs', '-z3', 'update', '-dP']) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        return self.runStep()
Exemple #2
0
 def test_mode_incremental_with_options(self):
     self.setupStep(
         cvs.CVS(
             cvsroot=":pserver:[email protected]:/cvsroot",
             cvsmodule="mozilla/browser/",
             mode='incremental',
             login=True,
             global_options=['-q'],
             extra_options=['-l']))
     self.expectCommands(
         ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
         Expect('stat', dict(file='wkdir/.buildbot-patched',
                             logEnviron=True)) + 1,
         Expect(
             'uploadFile',
             dict(blocksize=32768,
                  maxsize=None,
                  slavesrc='Root',
                  workdir='wkdir/CVS',
                  writer=ExpectRemoteRef(shell.StringFileWriter))) + 1,
         Expect('rmdir', dict(dir='wkdir', logEnviron=True)) + 0,
         ExpectShell(
             workdir='',
             command=[
                 'cvs', '-q', '-d',
                 ':pserver:[email protected]:/cvsroot',
                 '-z3', 'checkout', '-d', 'wkdir', '-l', 'mozilla/browser/'
             ]) + 0,
     )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     self.expectProperty('got_revision', '2012-09-09 12:00:39 +0000', 'CVS')
     return self.runStep()
Exemple #3
0
 def test_mode_incremental_wrong_repo(self):
     self.setupStep(
         cvs.CVS(
             cvsroot=":pserver:[email protected]:/cvsroot",
             cvsmodule="mozilla/browser/",
             mode='incremental',
             login=True))
     self.expectCommands(
         ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
         Expect(
             'uploadFile',
             dict(blocksize=32768,
                  maxsize=None,
                  slavesrc='Root',
                  workdir='wkdir/CVS',
                  writer=ExpectRemoteRef(shell.StringFileWriter))) +
         Expect.behavior(uploadString('the-end-of-the-universe')) + 0,
         Expect('rmdir', dict(dir='wkdir', logEnviron=True)) + 0,
         ExpectShell(
             workdir='',
             command=[
                 'cvs', '-d',
                 ':pserver:[email protected]:/cvsroot',
                 '-z3', 'checkout', '-d', 'wkdir', 'mozilla/browser/'
             ]) + 0,
     )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     return self.runStep()
Exemple #4
0
 def test_mode_full_clean_no_existing_repo(self):
     self.setupStep(
         cvs.CVS(
             cvsroot=":pserver:[email protected]:/cvsroot",
             cvsmodule="mozilla/browser/",
             mode='full',
             method='clean',
             login=True))
     self.expectCommands(
         ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
         Expect(
             'uploadFile',
             dict(blocksize=32768,
                  maxsize=None,
                  slavesrc='Root',
                  workdir='wkdir/CVS',
                  writer=ExpectRemoteRef(shell.StringFileWriter))) + 1,
         ExpectShell(
             workdir='',
             command=[
                 'cvs', '-d',
                 ':pserver:[email protected]:/cvsroot',
                 '-z3', 'checkout', '-d', 'wkdir', 'mozilla/browser/'
             ]) + 0,
     )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     return self.runStep()
Exemple #5
0
    def test_mode_full_copy(self):
        self.setupStep(
            cvs.CVS(cvsroot=":pserver:[email protected]:/cvsroot",
                    cvsmodule="mozilla/browser/", mode='full', method='copy',
                    login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir',
                        command=['cvs', '--version'])
            + 0,
            ExpectLogged('rmdir', dict(dir='wkdir',
                                       logEnviron=True))
            + 0,
            ExpectLogged('stat', dict(file='source/CVS',
                                      logEnviron=True))
            + 0,            
            ExpectShell(workdir='source',
                        command=['cvs', '-z3', 'update', '-dP'])
            + 0,
            ExpectLogged('cpdir', {'fromdir': 'source', 'todir': 'build',
                                   'logEnviron': True})
            + 0,
            )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        return self.runStep()
    def test_cvsdiscard_fails(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='full',
                method='fresh',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Root',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(
                uploadString(
                    ':pserver:[email protected]:/cvsroot')) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Repository',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(uploadString('mozilla/browser/')) + 0,
            ExpectShell(workdir='wkdir', command=['cvsdiscard', '--ignore']) +
            ExpectShell.log('stdio', stderr='FAIL!\n') + 1,
        )

        self.expectOutcome(result=FAILURE, status_text=["updating"])
        return self.runStep()
Exemple #7
0
    def test_mode_incremental_special_case(self):
        self.setupStep(
            cvs.CVS(cvsroot=":pserver:[email protected]:/cvsroot",
                    cvsmodule="mozilla/browser/", mode='incremental',
                    branch='HEAD', login=True),
            args=dict(revision='2012-08-16 16:05:16 +0000'))
        self.expectCommands(
            ExpectShell(workdir='wkdir',
                        command=['cvs', '--version'])
            + 0,
            Expect('stat', dict(file='wkdir/.buildbot-patched',
                                logEnviron=True))
            + 1,
            Expect('uploadFile', dict(blocksize=32768, maxsize=None,
                        slavesrc='Root', workdir='wkdir/CVS',
                        writer=ExpectRemoteRef(shell.StringFileWriter)))
            + Expect.behavior(uploadString(':pserver:[email protected]:/cvsroot'))
            + 0,
            Expect('uploadFile', dict(blocksize=32768, maxsize=None,
                        slavesrc='Repository', workdir='wkdir/CVS',
                        writer=ExpectRemoteRef(shell.StringFileWriter)))
            + Expect.behavior(uploadString('mozilla/browser/'))
            + 0,
            ExpectShell(workdir='wkdir',
                command=['cvs', '-z3', 'update', '-dP',
                            # note, no -r HEAD here - that's the special case
                            '-D', '2012-08-16 16:05:16 +0000'])
            + 0,
            )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        return self.runStep()
Exemple #8
0
 def test_mode_full_clean_wrong_repo(self):
     self.setupStep(
         cvs.CVS(
             cvsroot=":pserver:[email protected]:/cvsroot",
             cvsmodule="mozilla/browser/",
             mode='full',
             method='clean',
             login=True))
     self.expectCommands(
         ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
         Expect('stat', dict(file='wkdir/.buildbot-patched',
                             logEnviron=True)) + 1,
         Expect(
             'uploadFile',
             dict(blocksize=32768,
                  maxsize=None,
                  slavesrc='Root',
                  workdir='wkdir/CVS',
                  writer=ExpectRemoteRef(shell.StringFileWriter))) +
         Expect.behavior(uploadString('the-end-of-the-universe')) + 0,
         ExpectShell(
             workdir='',
             command=[
                 'cvs', '-d',
                 ':pserver:[email protected]:/cvsroot',
                 '-z3', 'checkout', '-d', 'wkdir', 'mozilla/browser/'
             ]) + 0,
     )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     self.expectProperty('got_revision', '2012-09-09 12:00:39 +0000', 'CVS')
     return self.runStep()
Exemple #9
0
    def test_mode_full_clobber(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='full',
                method='clobber',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect('stat', dict(file='wkdir/.buildbot-patched',
                                logEnviron=True)) + 1,
            Expect('rmdir', dict(dir='wkdir', logEnviron=True)) + 0,
            ExpectShell(
                workdir='',
                command=[
                    'cvs', '-d',
                    ':pserver:[email protected]:/cvsroot',
                    '-z3', 'checkout', '-d', 'wkdir', 'mozilla/browser/'
                ]) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        self.expectProperty('got_revision', '2012-09-09 12:00:39 +0000', 'CVS')
        return self.runStep()
    def test_mode_incremental(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='incremental',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Root',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(
                uploadString(
                    ':pserver:[email protected]:/cvsroot')) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Repository',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(uploadString('mozilla/browser/')) + 0,
            ExpectShell(workdir='wkdir',
                        command=['cvs', '-z3', 'update', '-dP']) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        self.expectProperty('got_revision', '2012-09-09 12:00:39 +0000', 'CVS')
        return self.runStep()
Exemple #11
0
    def test_command_fails(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='incremental',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 128, )

        self.expectOutcome(result=FAILURE, status_text=["updating"])
        return self.runStep()
Exemple #12
0
 def test_mode_full_clean_patch(self):
     self.setupStep(
         cvs.CVS(cvsroot=":pserver:[email protected]:/cvsroot",
                 cvsmodule="mozilla/browser/", mode='full', method='clean',
                 login=True), patch=(1, 'patch'))
     self.expectCommands(
         ExpectShell(workdir='wkdir',
                     command=['cvs', '--version'])
         + 0,
         Expect('stat', dict(file='wkdir/.buildbot-patched',
                             logEnviron=True))
         + 0,
         ExpectShell(workdir='wkdir',
                     command=['cvsdiscard'])
         + 0,
         Expect('uploadFile', dict(blocksize=32768, maxsize=None,
                     slavesrc='Root', workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter)))
         + Expect.behavior(uploadString(':pserver:[email protected]:/cvsroot'))
         + 0,
         Expect('uploadFile', dict(blocksize=32768, maxsize=None,
                     slavesrc='Repository', workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter)))
         + Expect.behavior(uploadString('mozilla/browser/'))
         + 0,
         ExpectShell(workdir='wkdir',
                     command=['cvsdiscard'])
         + 0,
         ExpectShell(workdir='wkdir',
                     command=['cvs', '-z3', 'update', '-dP'])
         + 0,
         Expect('downloadFile', dict(blocksize=16384, maxsize=None, 
                                     reader=ExpectRemoteRef(_FileReader),
                                     slavedest='.buildbot-diff', workdir='wkdir',
                                     mode=None))
         + 0,
         Expect('downloadFile', dict(blocksize=16384, maxsize=None, 
                                     reader=ExpectRemoteRef(_FileReader),
                                     slavedest='.buildbot-patched', workdir='wkdir',
                                     mode=None))
         + 0,
         ExpectShell(workdir='wkdir',
                     command=['patch', '-p1', '--remove-empty-files',
                              '--force', '--forward', '-i', '.buildbot-diff'])
         + 0,
         Expect('rmdir', dict(dir='wkdir/.buildbot-diff',
                              logEnviron=True))
         + 0,
         )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     self.expectProperty('got_revision', '2012-09-09 12:00:39 +0000', 'CVS')
     return self.runStep()
Exemple #13
0
    def test_parseGotRevision(self):
        def gmtime():
            return time.struct_time((2012, 9, 9, 12, 9, 33, 6, 253, 0))
        self.patch(time, 'gmtime', gmtime)

        step = cvs.CVS(cvsroot="x", cvsmodule="m", mode='full', method='clean')
        props = []
        def updateSourceProperty(prop, name):
            props.append((prop, name))
        step.updateSourceProperty = updateSourceProperty

        self.assertEqual(step.parseGotRevision(10), 10) # passes res along
        self.assertEqual(props,
                [('got_revision', '2012-09-09 12:09:33 +0000')])
    def test_mode_incremental(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='incremental',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect('stat', dict(file='wkdir/CVS', logEnviron=True)) + 0,
            ExpectShell(workdir='wkdir',
                        command=['cvs', '-z3', 'update', '-dP']) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        return self.runStep()
    def test_cvsdiscard_fails(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='full',
                method='fresh',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect('stat', dict(file='wkdir/CVS', logEnviron=True)) + 0,
            ExpectShell(workdir='wkdir', command=['cvsdiscard', '--ignore']) +
            ExpectShell.log('stdio', stderr='FAIL!\n') + 1,
        )

        self.expectOutcome(result=FAILURE, status_text=["updating"])
        return self.runStep()
Exemple #16
0
    def test_mode_full_copy(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='full',
                method='copy',
                login=True))
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
            Expect('stat', dict(file='wkdir/.buildbot-patched',
                                logEnviron=True)) + 1,
            Expect('rmdir', dict(dir='wkdir', logEnviron=True)) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Root',
                     workdir='source/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(
                uploadString(
                    ':pserver:[email protected]:/cvsroot')) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Repository',
                     workdir='source/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(uploadString('mozilla/browser/')) + 0,
            ExpectShell(workdir='source',
                        command=['cvs', '-z3', 'update', '-dP']) + 0,
            Expect('cpdir', {
                'fromdir': 'source',
                'todir': 'build',
                'logEnviron': True
            }) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        self.expectProperty('got_revision', '2012-09-09 12:00:39 +0000', 'CVS')
        return self.runStep()
Exemple #17
0
 def test_mode_incremental_with_options(self):
     self.setupStep(
         cvs.CVS(cvsroot=":pserver:[email protected]:/cvsroot",
                 cvsmodule="mozilla/browser/", mode='incremental',
                 login=True, global_options=['-q'], extra_options=['-l']))
     self.expectCommands(
         ExpectShell(workdir='wkdir',
                     command=['cvs', '--version'])
         + 0,
         ExpectLogged('stat', dict(file='wkdir/CVS',
                                   logEnviron=True))
         + 1,
         ExpectShell(workdir='',
                     command=['cvs', '-q', '-d',
                              ':pserver:[email protected]:/cvsroot',
                              '-z3', 'checkout', '-d', 'wkdir', 'mozilla/browser/', '-l'])
         + 0,
         )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     return self.runStep()
 def test_mode_full_clean_no_existing_repo(self):
     self.setupStep(
         cvs.CVS(
             cvsroot=":pserver:[email protected]:/cvsroot",
             cvsmodule="mozilla/browser/",
             mode='full',
             method='clean',
             login=True))
     self.expectCommands(
         ExpectShell(workdir='wkdir', command=['cvs', '--version']) + 0,
         Expect('stat', dict(file='wkdir/CVS', logEnviron=True)) + 1,
         ExpectShell(
             workdir='',
             command=[
                 'cvs', '-d',
                 ':pserver:[email protected]:/cvsroot',
                 '-z3', 'checkout', '-d', 'wkdir', 'mozilla/browser/'
             ]) + 0,
     )
     self.expectOutcome(result=SUCCESS, status_text=["update"])
     return self.runStep()
Exemple #19
0
    def test_mode_incremental_with_env_logEnviron(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='incremental',
                login=True,
                env={'abc': '123'},
                logEnviron=False))
        self.expectCommands(
            ExpectShell(workdir='wkdir',
                        command=['cvs', '--version'],
                        env={'abc': '123'},
                        logEnviron=False) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Root',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(
                uploadString(
                    ':pserver:[email protected]:/cvsroot')) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Repository',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(uploadString('mozilla/browser/')) + 0,
            ExpectShell(workdir='wkdir',
                        command=['cvs', '-z3', 'update', '-dP'],
                        env={'abc': '123'},
                        logEnviron=False) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        return self.runStep()
Exemple #20
0
    def test_mode_full_clean_timeout(self):
        self.setupStep(
            cvs.CVS(
                cvsroot=":pserver:[email protected]:/cvsroot",
                cvsmodule="mozilla/browser/",
                mode='full',
                method='clean',
                login=True,
                timeout=1))
        self.expectCommands(
            ExpectShell(
                workdir='wkdir', timeout=1, command=['cvs', '--version']) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Root',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(
                uploadString(
                    ':pserver:[email protected]:/cvsroot')) + 0,
            Expect(
                'uploadFile',
                dict(blocksize=32768,
                     maxsize=None,
                     slavesrc='Repository',
                     workdir='wkdir/CVS',
                     writer=ExpectRemoteRef(shell.StringFileWriter))) +
            Expect.behavior(uploadString('mozilla/browser/')) + 0,
            ExpectShell(workdir='wkdir', timeout=1, command=['cvsdiscard']) +
            0,
            ExpectShell(workdir='wkdir',
                        timeout=1,
                        command=['cvs', '-z3', 'update', '-dP']) + 0,
        )

        self.expectOutcome(result=SUCCESS, status_text=["update"])
        return self.runStep()