binman: Sort tests and rework test-file numbers

Tests should be in order of the test-file numbers. Sort the tests
according to the test-file numbers and rework the test-file numbers to
eliminate duplicate numbers.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Stefan Herbrechtsmeier 2022-08-23 12:46:09 +02:00 committed by Simon Glass
parent 86e54468ec
commit 5cb0b25666
24 changed files with 64 additions and 63 deletions

View File

@ -5351,16 +5351,6 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
"Node '/binman/u-boot': Please use 'extend-size' instead of 'expand-size'",
str(e.exception))
def testMkimageMissingBlob(self):
"""Test using mkimage to build an image"""
with test_util.capture_sys_output() as (stdout, stderr):
self._DoTestFile('229_mkimage_missing.dts', allow_missing=True,
allow_fake_blobs=True)
err = stderr.getvalue()
self.assertRegex(
err,
"Image '.*' has faked external blobs and is non-functional: .*")
def testFitSplitElf(self):
"""Test an image with an FIT with an split-elf operation"""
if not elf.ELF_TOOLS:
@ -5461,24 +5451,6 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
"Node '/binman/fit': subnode 'images/@atf-SEQ': Failed to read ELF file: Magic number does not match",
str(exc.exception))
def testFitSplitElfBadDirective(self):
"""Test a FIT split-elf invalid fit,xxx directive in an image node"""
if not elf.ELF_TOOLS:
self.skipTest('Python elftools not available')
err = self._check_bad_fit('227_fit_bad_dir.dts')
self.assertIn(
"Node '/binman/fit': subnode 'images/@atf-SEQ': Unknown directive 'fit,something'",
err)
def testFitSplitElfBadDirectiveConfig(self):
"""Test a FIT split-elf with invalid fit,xxx directive in config"""
if not elf.ELF_TOOLS:
self.skipTest('Python elftools not available')
err = self._check_bad_fit('228_fit_bad_dir_config.dts')
self.assertEqual(
"Node '/binman/fit': subnode 'configurations/@config-SEQ': Unknown directive 'fit,config'",
err)
def checkFitSplitElf(self, **kwargs):
"""Test an split-elf FIT with a missing ELF file
@ -5505,6 +5477,25 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
err = stderr.getvalue()
return out, err
def testFitSplitElfBadDirective(self):
"""Test a FIT split-elf invalid fit,xxx directive in an image node"""
if not elf.ELF_TOOLS:
self.skipTest('Python elftools not available')
err = self._check_bad_fit('227_fit_bad_dir.dts')
self.assertIn(
"Node '/binman/fit': subnode 'images/@atf-SEQ': Unknown directive 'fit,something'",
err)
def testFitSplitElfBadDirectiveConfig(self):
"""Test a FIT split-elf with invalid fit,xxx directive in config"""
if not elf.ELF_TOOLS:
self.skipTest('Python elftools not available')
err = self._check_bad_fit('228_fit_bad_dir_config.dts')
self.assertEqual(
"Node '/binman/fit': subnode 'configurations/@config-SEQ': Unknown directive 'fit,config'",
err)
def testFitSplitElfMissing(self):
"""Test an split-elf FIT with a missing ELF file"""
if not elf.ELF_TOOLS:
@ -5531,31 +5522,41 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
fname = tools.get_output_filename('binman-fake/missing.elf')
self.assertTrue(os.path.exists(fname))
def testMkimageMissingBlob(self):
"""Test using mkimage to build an image"""
with test_util.capture_sys_output() as (stdout, stderr):
self._DoTestFile('229_mkimage_missing.dts', allow_missing=True,
allow_fake_blobs=True)
err = stderr.getvalue()
self.assertRegex(
err,
"Image '.*' has faked external blobs and is non-functional: .*")
def testPreLoad(self):
"""Test an image with a pre-load header"""
entry_args = {
'pre-load-key-path': '.',
}
data, _, _, _ = self._DoReadFileDtb('225_pre_load.dts',
data, _, _, _ = self._DoReadFileDtb('230_pre_load.dts',
entry_args=entry_args)
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
data = self._DoReadFile('225_pre_load.dts')
data = self._DoReadFile('230_pre_load.dts')
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
def testPreLoadPkcs(self):
"""Test an image with a pre-load header with padding pkcs"""
data = self._DoReadFile('226_pre_load_pkcs.dts')
data = self._DoReadFile('231_pre_load_pkcs.dts')
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
def testPreLoadPss(self):
"""Test an image with a pre-load header with padding pss"""
data = self._DoReadFile('227_pre_load_pss.dts')
data = self._DoReadFile('232_pre_load_pss.dts')
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
@ -5563,22 +5564,22 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testPreLoadInvalidPadding(self):
"""Test an image with a pre-load header with an invalid padding"""
with self.assertRaises(ValueError) as e:
data = self._DoReadFile('228_pre_load_invalid_padding.dts')
data = self._DoReadFile('233_pre_load_invalid_padding.dts')
def testPreLoadInvalidSha(self):
"""Test an image with a pre-load header with an invalid hash"""
with self.assertRaises(ValueError) as e:
data = self._DoReadFile('229_pre_load_invalid_sha.dts')
data = self._DoReadFile('234_pre_load_invalid_sha.dts')
def testPreLoadInvalidAlgo(self):
"""Test an image with a pre-load header with an invalid algo"""
with self.assertRaises(ValueError) as e:
data = self._DoReadFile('230_pre_load_invalid_algo.dts')
data = self._DoReadFile('235_pre_load_invalid_algo.dts')
def testPreLoadInvalidKey(self):
"""Test an image with a pre-load header with an invalid key"""
with self.assertRaises(ValueError) as e:
data = self._DoReadFile('231_pre_load_invalid_key.dts')
data = self._DoReadFile('236_pre_load_invalid_key.dts')
def _CheckSafeUniqueNames(self, *images):
"""Check all entries of given images for unsafe unique names"""
@ -5593,7 +5594,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testSafeUniqueNames(self):
"""Test entry unique names are safe in single image configuration"""
data = self._DoReadFileRealDtb('230_unique_names.dts')
data = self._DoReadFileRealDtb('237_unique_names.dts')
orig_image = control.images['image']
image_fname = tools.get_output_filename('image.bin')
@ -5603,7 +5604,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testSafeUniqueNamesMulti(self):
"""Test entry unique names are safe with multiple images"""
data = self._DoReadFileRealDtb('231_unique_names_multi.dts')
data = self._DoReadFileRealDtb('238_unique_names_multi.dts')
orig_image = control.images['image']
image_fname = tools.get_output_filename('image.bin')
@ -5613,7 +5614,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testReplaceCmdWithBintool(self):
"""Test replacing an entry that needs a bintool to pack"""
data = self._DoReadFileRealDtb('232_replace_with_bintool.dts')
data = self._DoReadFileRealDtb('239_replace_with_bintool.dts')
expected = U_BOOT_DATA + b'aa'
self.assertEqual(expected, data[:len(expected)])
@ -5632,7 +5633,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testReplaceCmdOtherWithBintool(self):
"""Test replacing an entry when another needs a bintool to pack"""
data = self._DoReadFileRealDtb('232_replace_with_bintool.dts')
data = self._DoReadFileRealDtb('239_replace_with_bintool.dts')
expected = U_BOOT_DATA + b'aa'
self.assertEqual(expected, data[:len(expected)])
@ -5672,7 +5673,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testExtractFit(self):
"""Test extracting a FIT section"""
self._DoReadFileRealDtb('233_fit_extract_replace.dts')
self._DoReadFileRealDtb('240_fit_extract_replace.dts')
image_fname = tools.get_output_filename('image.bin')
fit_data = control.ReadEntry(image_fname, 'fit')
@ -5691,7 +5692,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testExtractFitSubentries(self):
"""Test extracting FIT section subentries"""
self._DoReadFileRealDtb('233_fit_extract_replace.dts')
self._DoReadFileRealDtb('240_fit_extract_replace.dts')
image_fname = tools.get_output_filename('image.bin')
for entry_path, expected in [
@ -5710,7 +5711,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
new_data = b'x' * len(U_BOOT_DATA)
data, expected_fdtmap, _ = self._RunReplaceCmd(
'fit/kernel/u-boot', new_data,
dts='233_fit_extract_replace.dts')
dts='240_fit_extract_replace.dts')
self.assertEqual(new_data, data)
path, fdtmap = state.GetFdtContents('fdtmap')
@ -5722,7 +5723,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
new_data = b'ub' * len(U_BOOT_NODTB_DATA)
data, expected_fdtmap, _ = self._RunReplaceCmd(
'fit/fdt-1/u-boot-nodtb', new_data,
dts='233_fit_extract_replace.dts')
dts='240_fit_extract_replace.dts')
self.assertEqual(new_data, data)
# Will be repacked, so fdtmap must change
@ -5736,7 +5737,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
expected = new_data.ljust(len(U_BOOT_NODTB_DATA), b'\0')
data, expected_fdtmap, _ = self._RunReplaceCmd(
'fit/fdt-1/u-boot-nodtb', new_data,
dts='233_fit_extract_replace.dts')
dts='240_fit_extract_replace.dts')
self.assertEqual(expected, data)
path, fdtmap = state.GetFdtContents('fdtmap')
@ -5748,14 +5749,14 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
new_data = b'w' * len(COMPRESS_DATA + U_BOOT_DATA)
with self.assertRaises(ValueError) as exc:
self._RunReplaceCmd('section', new_data,
dts='234_replace_section_simple.dts')
dts='241_replace_section_simple.dts')
self.assertIn(
"Node '/section': Replacing sections is not implemented yet",
str(exc.exception))
def testMkimageImagename(self):
"""Test using mkimage with -n holding the data too"""
data = self._DoReadFile('235_mkimage_name.dts')
data = self._DoReadFile('242_mkimage_name.dts')
# Check that the data appears in the file somewhere
self.assertIn(U_BOOT_SPL_DATA, data)
@ -5772,7 +5773,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testMkimageImage(self):
"""Test using mkimage with -n holding the data too"""
data = self._DoReadFile('236_mkimage_image.dts')
data = self._DoReadFile('243_mkimage_image.dts')
# Check that the data appears in the file somewhere
self.assertIn(U_BOOT_SPL_DATA, data)
@ -5793,20 +5794,20 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testMkimageImageNoContent(self):
"""Test using mkimage with -n and no data"""
with self.assertRaises(ValueError) as exc:
self._DoReadFile('237_mkimage_image_no_content.dts')
self._DoReadFile('244_mkimage_image_no_content.dts')
self.assertIn('Could not complete processing of contents',
str(exc.exception))
def testMkimageImageBad(self):
"""Test using mkimage with imagename node and data-to-imagename"""
with self.assertRaises(ValueError) as exc:
self._DoReadFile('238_mkimage_image_bad.dts')
self._DoReadFile('245_mkimage_image_bad.dts')
self.assertIn('Cannot use both imagename node and data-to-imagename',
str(exc.exception))
def testCollectionOther(self):
"""Test a collection where the data comes from another section"""
data = self._DoReadFile('239_collection_other.dts')
data = self._DoReadFile('246_collection_other.dts')
self.assertEqual(U_BOOT_NODTB_DATA + U_BOOT_DTB_DATA +
tools.get_bytes(0xff, 2) + U_BOOT_NODTB_DATA +
tools.get_bytes(0xfe, 3) + U_BOOT_DTB_DATA,
@ -5814,20 +5815,20 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testMkimageCollection(self):
"""Test using a collection referring to an entry in a mkimage entry"""
data = self._DoReadFile('240_mkimage_coll.dts')
data = self._DoReadFile('247_mkimage_coll.dts')
expect = U_BOOT_SPL_DATA + U_BOOT_DATA
self.assertEqual(expect, data[:len(expect)])
def testCompressDtbPrependInvalid(self):
"""Test that invalid header is detected"""
with self.assertRaises(ValueError) as e:
self._DoReadFileDtb('235_compress_dtb_prepend_invalid.dts')
self._DoReadFileDtb('248_compress_dtb_prepend_invalid.dts')
self.assertIn("Node '/binman/u-boot-dtb': Invalid prepend in "
"'u-boot-dtb': 'invalid'", str(e.exception))
def testCompressDtbPrependLength(self):
"""Test that compress with length header works as expected"""
data = self._DoReadFileRealDtb('236_compress_dtb_prepend_length.dts')
data = self._DoReadFileRealDtb('249_compress_dtb_prepend_length.dts')
image = control.images['image']
entries = image.GetEntries()
self.assertIn('u-boot-dtb', entries)
@ -5860,7 +5861,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testInvalidCompress(self):
"""Test that invalid compress algorithm is detected"""
with self.assertRaises(ValueError) as e:
self._DoTestFile('237_compress_dtb_invalid.dts')
self._DoTestFile('250_compress_dtb_invalid.dts')
self.assertIn("Unknown algorithm 'invalid'", str(e.exception))
def testCompUtilCompressions(self):
@ -5893,7 +5894,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
def testCompressDtbZstd(self):
"""Test that zstd compress of device-tree files failed"""
with self.assertRaises(ValueError) as e:
self._DoTestFile('238_compress_dtb_zstd.dts')
self._DoTestFile('251_compress_dtb_zstd.dts')
self.assertIn("Node '/binman/u-boot-dtb': The zstd compression "
"requires a length header", str(e.exception))

View File

@ -10,7 +10,7 @@
pre-load {
content = <&image>;
algo-name = "sha256,rsa2048";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <0x11223344>;
};

View File

@ -11,7 +11,7 @@
content = <&image>;
algo-name = "sha256,rsa2048";
padding-name = "pkcs-1.5";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <0x11223344>;
};

View File

@ -11,7 +11,7 @@
content = <&image>;
algo-name = "sha256,rsa2048";
padding-name = "pss";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <0x11223344>;
};

View File

@ -11,7 +11,7 @@
content = <&image>;
algo-name = "sha256,rsa2048";
padding-name = "padding";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <1>;
};

View File

@ -11,7 +11,7 @@
content = <&image>;
algo-name = "sha2560,rsa2048";
padding-name = "pkcs-1.5";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <1>;
};

View File

@ -11,7 +11,7 @@
content = <&image>;
algo-name = "sha256,rsa20480";
padding-name = "pkcs-1.5";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <1>;
};

View File

@ -11,7 +11,7 @@
content = <&image>;
algo-name = "sha256,rsa4096";
padding-name = "pkcs-1.5";
key-name = "tools/binman/test/225_dev.key";
key-name = "tools/binman/test/230_dev.key";
header-size = <4096>;
version = <1>;
};