|
@@ -171,7 +171,7 @@ class TestFunctional(unittest.TestCase):
|
|
|
return control.Binman(options, args)
|
|
|
|
|
|
def _DoTestFile(self, fname, debug=False, map=False, update_dtb=False,
|
|
|
- entry_args=None):
|
|
|
+ entry_args=None, images=None):
|
|
|
"""Run binman with a given test file
|
|
|
|
|
|
Args:
|
|
@@ -180,6 +180,10 @@ class TestFunctional(unittest.TestCase):
|
|
|
map: True to output map files for the images
|
|
|
update_dtb: Update the offset and size of each entry in the device
|
|
|
tree before packing it into the image
|
|
|
+ entry_args: Dict of entry args to supply to binman
|
|
|
+ key: arg name
|
|
|
+ value: value of that arg
|
|
|
+ images: List of image names to build
|
|
|
"""
|
|
|
args = ['-p', '-I', self._indir, '-d', self.TestFile(fname)]
|
|
|
if debug:
|
|
@@ -191,6 +195,9 @@ class TestFunctional(unittest.TestCase):
|
|
|
if entry_args:
|
|
|
for arg, value in entry_args.iteritems():
|
|
|
args.append('-a%s=%s' % (arg, value))
|
|
|
+ if images:
|
|
|
+ for image in images:
|
|
|
+ args += ['-i', image]
|
|
|
return self._DoBinman(*args)
|
|
|
|
|
|
def _SetupDtb(self, fname, outfile='u-boot.dtb'):
|
|
@@ -1384,6 +1391,16 @@ class TestFunctional(unittest.TestCase):
|
|
|
data = self._DoReadFile('81_x86-start16-tpl.dts')
|
|
|
self.assertEqual(X86_START16_TPL_DATA, data[:len(X86_START16_TPL_DATA)])
|
|
|
|
|
|
+ def testSelectImage(self):
|
|
|
+ """Test that we can select which images to build"""
|
|
|
+ with test_util.capture_sys_output() as (stdout, stderr):
|
|
|
+ retcode = self._DoTestFile('06_dual_image.dts', images=['image2'])
|
|
|
+ self.assertEqual(0, retcode)
|
|
|
+ self.assertIn('Skipping images: image1', stdout.getvalue())
|
|
|
+
|
|
|
+ self.assertFalse(os.path.exists(tools.GetOutputFilename('image1.bin')))
|
|
|
+ self.assertTrue(os.path.exists(tools.GetOutputFilename('image2.bin')))
|
|
|
+
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
unittest.main()
|