[PATCH 1/1] test: bootflow test depends on CONFIG_VIDEO
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Wed May 31 21:27:20 CEST 2023
On 5/31/23 20:24, Tom Rini wrote:
> On Wed, May 31, 2023 at 08:05:18PM +0200, Heinrich Schuchardt wrote:
>>
>>
>> On 5/31/23 19:13, Simon Glass wrote:
>>> Hi Heinrich,
>>>
>>> On Wed, 31 May 2023 at 09:52, Tom Rini <trini at konsulko.com> wrote:
>>>>
>>>> On Wed, May 31, 2023 at 04:25:46PM +0200, Heinrich Schuchardt wrote:
>>>>> Tom Rini <trini at konsulko.com> schrieb am Mi., 31. Mai 2023, 16:02:
>>>>>
>>>>>> On Wed, May 31, 2023 at 10:50:52AM +0200, Heinrich Schuchardt wrote:
>>>>>>
>>>>>>> qemu_arm64_defconfig with UNIT_TEST=y does not build.
>>>>>>>
>>>>>>> CONFIG_EXPO depends on CONFIG_VIDEO. Hence on platforms without video we
>>>>>>> must not enable unit tests invoking expo functions.
>>>>>>>
>>>>>>> Fixes: fb1451bec2a5 ("bootstd: Add tests for bootstd including all
>>>>>> uclasses")
>>>>>>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>>>>>>> ---
>>>>>>> test/boot/Makefile | 5 ++++-
>>>>>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>>>>>>
>>>>>>> diff --git a/test/boot/Makefile b/test/boot/Makefile
>>>>>>> index 22ed61c8fa..665017ba3d 100644
>>>>>>> --- a/test/boot/Makefile
>>>>>>> +++ b/test/boot/Makefile
>>>>>>> @@ -2,7 +2,10 @@
>>>>>>> #
>>>>>>> # Copyright 2021 Google LLC
>>>>>>>
>>>>>>> -obj-$(CONFIG_BOOTSTD) += bootdev.o bootstd_common.o bootflow.o
>>>>>> bootmeth.o
>>>>>>> +ifdef CONFIG_BOOTSTD
>>>>>>> +obj-y += bootstd_common.o bootmeth.o
>>>>>>> +obj-$(VIDEO) += bootdev.o bootflow.o
>>>>>>> +endif
>>>>>>> obj-$(CONFIG_FIT) += image.o
>>>>>>>
>>>>>>> obj-$(CONFIG_EXPO) += expo.o
>>>>>>
>>>>>> OK, but the functionality itself doesn't depend on video, it looks like
>>>>>> maybe only the bootflow_menu_theme test itself, so lets try and solve
>>>>>> this differently.
>>>>>>
>>>>>> --
>>>>>> Tom
>>>>>>
>>>>>
>>>>> Yes I should have used CONFIG_EXPO not CONFIG_VIDEO .
>>>>
>>>> Well no, at first glance it's 1 out of 15 tests in that file that depend
>>>> on CONFIG_EXPO, so we should just ifdef that test.
>>
>> Yes, there is only one test in bootflow.o depending on EXPO.
>> There are multiple tests in bootdev.o depending on CONFIG_DM_MMC.
>
> And the tests presumably check for DM_MMC, or should.
>
>>> You could put something like this at the top of bootflow_cmd_menu():
>>>
>>> /* 'bootflow menu' currently requires a video console */
>>> if (!IS_ENABLED(CONFIG_VIDEO))
>>> return -EAGAIN;
>>
>> With this change I still get:
>>
>> aarch64-linux-gnu-ld.bfd: boot/bootflow_menu.o: in function
>> `bootflow_menu_new':
>
> Looks like there's an extra line in boot/Makefile then, we already
> include bootflow_menu.o on EXPO.
>
Hello Simon,
the bootstd tests are in complete disarray
On the sandbox invoked with
./u-boot -T
=> ut bootstd
Can't map file 'mmc1.img': Invalid argument
mmc1: Unable to map file 'mmc1.img'
Failed to set up for bootstd tests (err=-5)
It I create a file mmc1.img:
test/boot/bootdev.c:460, bootdev_test_bootable(): -EINVAL ==
bootdev_find_in_blk(iter.dev, blk, &iter, &bflow): Expected 0xffffffea
(-22), got 0xffffffa3 (-93)
test/boot/bootdev.c:465, bootdev_test_bootable(): -ENOENT ==
bootdev_find_in_blk(iter.dev, blk, &iter, &bflow): Expected 0xfffffffe
(-2), got 0xffffffa3 (-93)
test/boot/bootdev.c:466, bootdev_test_bootable(): 1 ==
iter.first_bootable: Expected 0x1 (1), got 0x0 (0)
test/boot/bootdev.c:470, bootdev_test_bootable(): -EINVAL ==
bootdev_find_in_blk(iter.dev, blk, &iter, &bflow): Expected 0xffffffea
(-22), got 0xffffffa3 (-93)
Test: bootdev_test_bootable: bootdev.c (flat tree)
test/boot/bootdev.c:460, bootdev_test_bootable(): -EINVAL ==
bootdev_find_in_blk(iter.dev, blk, &iter, &bflow): Expected 0xffffffea
(-22), got 0xffffffa3 (-93)
test/boot/bootdev.c:465, bootdev_test_bootable(): -ENOENT ==
bootdev_find_in_blk(iter.dev, blk, &iter, &bflow): Expected 0xfffffffe
(-2), got 0xffffffa3 (-93)
test/boot/bootdev.c:466, bootdev_test_bootable(): 1 ==
iter.first_bootable: Expected 0x1 (1), got 0x0 (0)
test/boot/bootdev.c:470, bootdev_test_bootable(): -EINVAL ==
bootdev_find_in_blk(iter.dev, blk, &iter, &bflow): Expected 0xffffffea
(-22), got 0xffffffa3 (-93)
Test <NULL> failed 8 times
As discussed previously:
The general expectation is that unit tests can be run successfully on
any physical or emulated board. Should a test not comply with this
requirement the test must be deactivated automatically upon build.
A test like
ut_assert_skip_to_line(
"sandbox: continuing, as we cannot run Linux");
will never succeed on other architectures.
Best regards
Heinrich
More information about the U-Boot
mailing list