diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/boot/bootflow.c | 6 | ||||
| -rw-r--r-- | test/dm/part.c | 13 | ||||
| -rw-r--r-- | test/py/tests/bootstd/mmc1.img.xz | bin | 4448 -> 4480 bytes | |||
| -rw-r--r-- | test/py/tests/test_ut.py | 13 | 
4 files changed, 25 insertions, 7 deletions
| diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c index 12976005e41..38ffe8fa9be 100644 --- a/test/boot/bootflow.c +++ b/test/boot/bootflow.c @@ -315,15 +315,15 @@ static int bootflow_iter(struct unit_test_state *uts)  	ut_asserteq(BOOTFLOWST_FS, bflow.state);  	bootflow_free(&bflow); -	/* Then more to partition 2 which doesn't exist */ -	ut_asserteq(-ENOENT, bootflow_scan_next(&iter, &bflow)); +	/* Then more to partition 2 which exists but is not bootable */ +	ut_asserteq(-EPERM, bootflow_scan_next(&iter, &bflow));  	ut_asserteq(2, iter.num_methods);  	ut_asserteq(0, iter.cur_method);  	ut_asserteq(2, iter.part);  	ut_asserteq(0x1e, iter.max_part);  	ut_asserteq_str("syslinux", iter.method->name);  	ut_asserteq(0, bflow.err); -	ut_asserteq(BOOTFLOWST_MEDIA, bflow.state); +	ut_asserteq(BOOTFLOWST_PART, bflow.state);  	bootflow_free(&bflow);  	bootflow_iter_uninit(&iter); diff --git a/test/dm/part.c b/test/dm/part.c index b60687114f1..35e99eeb01a 100644 --- a/test/dm/part.c +++ b/test/dm/part.c @@ -93,3 +93,16 @@ static int dm_test_part(struct unit_test_state *uts)  	return ret;  }  DM_TEST(dm_test_part, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + +static int dm_test_part_bootable(struct unit_test_state *uts) +{ +	struct blk_desc *desc; +	struct udevice *dev; + +	ut_assertok(uclass_get_device_by_name(UCLASS_BLK, "mmc1.blk", &dev)); +	desc = dev_get_uclass_plat(dev); +	ut_asserteq(1, part_get_bootable(desc)); + +	return 0; +} +DM_TEST(dm_test_part_bootable, UT_TESTF_SCAN_FDT); diff --git a/test/py/tests/bootstd/mmc1.img.xz b/test/py/tests/bootstd/mmc1.img.xzBinary files differ index 4e7f39b830e..cebf7b9c53b 100644 --- a/test/py/tests/bootstd/mmc1.img.xz +++ b/test/py/tests/bootstd/mmc1.img.xz diff --git a/test/py/tests/test_ut.py b/test/py/tests/test_ut.py index 6958fabfa34..e8c8a6d6bd5 100644 --- a/test/py/tests/test_ut.py +++ b/test/py/tests/test_ut.py @@ -19,13 +19,14 @@ def mkdir_cond(dirname):      if not os.path.exists(dirname):          os.mkdir(dirname) -def setup_image(cons, mmc_dev, part_type): +def setup_image(cons, mmc_dev, part_type, second_part=False):      """Create a 20MB disk image with a single partition      Args:          cons (ConsoleBase): Console to use          mmc_dev (int): MMC device number to use, e.g. 1          part_type (int): Partition type, e.g. 0xc for FAT32 +        second_part (bool): True to contain a small second partition      Returns:          tuple: @@ -36,9 +37,13 @@ def setup_image(cons, mmc_dev, part_type):      mnt = os.path.join(cons.config.persistent_data_dir, 'mnt')      mkdir_cond(mnt) +    spec = f'type={part_type:x}, size=18M, bootable' +    if second_part: +        spec += '\ntype=c' +      u_boot_utils.run_and_log(cons, 'qemu-img create %s 20M' % fname)      u_boot_utils.run_and_log(cons, 'sudo sfdisk %s' % fname, -                             stdin=f'type={part_type:x}'.encode('utf-8')) +                             stdin=spec.encode('utf-8'))      return fname, mnt  def mount_image(cons, fname, mnt, fstype): @@ -59,7 +64,7 @@ def mount_image(cons, fname, mnt, fstype):      u_boot_utils.run_and_log(cons, f'sudo mkfs.{fstype} {part}')      opts = ''      if fstype == 'vfat': -         opts += ' -o uid={os.getuid()},gid={os.getgid()}' +         opts += f' -o uid={os.getuid()},gid={os.getgid()}'      u_boot_utils.run_and_log(cons, f'sudo mount -o loop {part} {mnt}{opts}')      u_boot_utils.run_and_log(cons, f'sudo chown {getpass.getuser()} {mnt}')      return loop @@ -218,7 +223,7 @@ booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}  def setup_bootflow_image(cons):      """Create a 20MB disk image with a single FAT partition"""      mmc_dev = 1 -    fname, mnt = setup_image(cons, mmc_dev, 0xc) +    fname, mnt = setup_image(cons, mmc_dev, 0xc, second_part=True)      loop = None      mounted = False | 
