328
328
self.assertFalse(self.slave.wasCalled('depFail'))
329
329
self.assertTrue(self.slave.wasCalled('buildOK'))
330
330
self.assertTrue(self.slave.wasCalled('buildComplete'))
332
def test_iterate_fast_cleanup(self):
333
# The build manager can be told that it doesn't need to do the final
334
# cleanup steps, because the VM is about to be torn down anyway. It
335
# iterates such a build from start to finish, but without calling
336
# umount-chroot or remove-build.
340
'deb http://ppa.launchpad.dev/owner/name/ubuntu xenial main',
342
'fast_cleanup': True,
345
self.startBuild(extra_args)
347
self.buildmanager.iterate(0)
348
self.assertEqual(DebianBuildState.UNPACK, self.getState())
350
(['sharepath/slavebin/in-target', 'in-target',
352
'--backend=chroot', '--series=xenial', '--arch=amd64',
354
os.path.join(self.buildmanager._cachepath, 'chroot.tar.gz')],
356
self.buildmanager.commands[-1])
358
self.buildmanager.iterate, self.buildmanager.iterators[-1])
360
self.buildmanager.iterate(0)
361
self.assertEqual(DebianBuildState.MOUNT, self.getState())
363
(['sharepath/slavebin/in-target', 'in-target',
365
'--backend=chroot', '--series=xenial', '--arch=amd64',
368
self.buildmanager.commands[-1])
370
self.buildmanager.iterate, self.buildmanager.iterators[-1])
372
self.buildmanager.iterate(0)
373
self.assertEqual(DebianBuildState.SOURCES, self.getState())
375
(['sharepath/slavebin/in-target', 'in-target',
376
'override-sources-list',
377
'--backend=chroot', '--series=xenial', '--arch=amd64',
379
'deb http://ppa.launchpad.dev/owner/name/ubuntu xenial main'],
381
self.buildmanager.commands[-1])
383
self.buildmanager.iterate, self.buildmanager.iterators[-1])
385
self.buildmanager.iterate(0)
386
self.assertEqual(DebianBuildState.UPDATE, self.getState())
388
(['sharepath/slavebin/in-target', 'in-target',
389
'update-debian-chroot',
390
'--backend=chroot', '--series=xenial', '--arch=amd64',
393
self.buildmanager.commands[-1])
395
self.buildmanager.iterate, self.buildmanager.iterators[-1])
397
self.buildmanager.iterate(0)
398
self.assertEqual(MockBuildState.MAIN, self.getState())
400
(['/bin/true', 'true'], None), self.buildmanager.commands[-1])
402
self.buildmanager.iterate, self.buildmanager.iterators[-1])
404
self.buildmanager.iterate(0)
405
self.assertEqual(MockBuildState.MAIN, self.getState())
407
(['sharepath/slavebin/in-target', 'in-target',
408
'scan-for-processes',
409
'--backend=chroot', '--series=xenial', '--arch=amd64',
412
self.buildmanager.commands[-1])
414
self.buildmanager.iterate, self.buildmanager.iterators[-1])
416
self.buildmanager.iterateReap(self.getState(), 0)
417
self.assertFalse(self.slave.wasCalled('builderFail'))
418
self.assertFalse(self.slave.wasCalled('chrootFail'))
419
self.assertFalse(self.slave.wasCalled('buildFail'))
420
self.assertFalse(self.slave.wasCalled('depFail'))
421
self.assertTrue(self.slave.wasCalled('buildOK'))
422
self.assertTrue(self.slave.wasCalled('buildComplete'))