[PATCH v11 06/29] test: boot: fix bootflow_cmd_label for when DSA_SANDBOX is disabled

Jerome Forissier jerome.forissier at linaro.org
Tue Oct 8 10:49:59 CEST 2024



On 10/7/24 17:23, Simon Glass wrote:
> Hi Jerome,
> 
> On Fri, 4 Oct 2024 at 06:01, Jerome Forissier
> <jerome.forissier at linaro.org> wrote:
>>
>>
>>
>> On 10/4/24 11:37, Ilias Apalodimas wrote:
>>> On Fri, 4 Oct 2024 at 11:46, Jerome Forissier
>>> <jerome.forissier at linaro.org> wrote:
>>>>
>>>>
>>>>
>>>> On 10/4/24 08:55, Ilias Apalodimas wrote:
>>>>> Hi Jerome,
>>>>>
>>>>> On Thu, 3 Oct 2024 at 18:23, Jerome Forissier
>>>>> <jerome.forissier at linaro.org> wrote:
>>>>>>
>>>>>> When DSA_SANDBOX is not set, the sandbox tests fail as follows:
>>>>>>
>>>>>>  $ ./test/py/test.py --build-dir=$(pwd) -k bootdev_test_any
>>>>>>  [...]
>>>>>>  Scanning for bootflows with label '9'
>>>>>>  [...]
>>>>>>  Cannot find '9' (err=-19)
>>>>>>
>>>>>> This is due to the device list containing two less entries than
>>>>>> expected. Therefore, look for label '7' when DSA_SANDBOX is disabled.
>>>>>>
>>>>>> The actual use case is NET_LWIP=y (to be introduced in later patches)
>>>>>> which implies DSA_SANDBOX=n for the time being.
>>>>>>
>>>>>> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
>>>>>> ---
>>>>>>  test/boot/bootflow.c | 7 +++++--
>>>>>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c
>>>>>> index 6ad63afe90a..c440b8eb778 100644
>>>>>> --- a/test/boot/bootflow.c
>>>>>> +++ b/test/boot/bootflow.c
>>>>>> @@ -109,9 +109,12 @@ static int bootflow_cmd_label(struct unit_test_state *uts)
>>>>>>          * 8   [   ]      OK  mmc       mmc2.bootdev
>>>>>>          * 9   [ + ]      OK  mmc       mmc1.bootdev
>>>>>>          * a   [   ]      OK  mmc       mmc0.bootdev
>>>>>> +        *
>>>>>> +        * However with CONFIG_DSA_SANDBOX=n we have two less (dsa-test at 0 and
>>>>>> +        * dsa-test at 1).
>>>>>>          */
>>>>>> -       ut_assertok(run_command("bootflow scan -lH 9", 0));
>>>>>> -       ut_assert_nextline("Scanning for bootflows with label '9'");
>>>>>
>>>>> Shouldn't this under and #ifdef, IS_ENABLED etc?
>>>>
>>>> In theory yes, but we can avoid the conditional by using index 7 which is always
>>>> valid, i.e., in all configurations we have at least 7 devices (even 8 actually).
>>>
>>> Ok, but I *think* Simon was trying to match the exact out put here,
>>> not 'at least 7'.
>>>
>>> I think we are better off being strict on this test
>>
>> No because there are 10 entries according to the comment ("a" hex being
>> mmc0.bootdev). Simon, what do you suggest?
> 
> I don't think this is a huge deal.
> 
> Reviewed-by: Simon Glass <sjg at chromium.org>

Unfortunately this patch breaks the default config (NET=y and therefore
DSA_SANDBOX=y):

=> ut bootstd bootflow_cmd_label
Test: bootflow_cmd_label: bootflow.c
Scanning for bootflows with label 'mmc1'
Seq  Method       State   Uclass    Part  Name                      Filename
---  -----------  ------  --------  ----  ------------------------  ----------------
Scanning bootdev 'mmc1.bootdev':
  0  extlinux     ready   mmc          1  mmc1.bootdev.part_1       /extlinux/extlinux.conf
No more bootdevs
---  -----------  ------  --------  ----  ------------------------  ----------------
(1 bootflow, 1 valid)
Scanning for bootflows with label '0'
Seq  Method       State   Uclass    Part  Name                      Filename
---  -----------  ------  --------  ----  ------------------------  ----------------
---  -----------  ------  --------  ----  ------------------------  ----------------
(0 bootflows, 0 valid)
Scanning for bootflows with label '7'
Seq  Method       State   Uclass    Part  Name                      Filename
---  -----------  ------  --------  ----  ------------------------  ----------------
---  -----------  ------  --------  ----  ------------------------  ----------------
(0 bootflows, 0 valid)
test/boot/bootflow.c:118, bootflow_cmd_label(): console:
Expected '(1 bootflow, 1 valid)',
     got to '(0 bootflows, 0 valid)'
[...]


So for v12 I'll do what Ilias suggested:

-       ut_assertok(run_command("bootflow scan -lH 9", 0));
-       ut_assert_nextline("Scanning for bootflows with label '9'");
+       if (CONFIG_IS_ENABLED(DSA_SANDBOX)) {
+               ut_assertok(run_command("bootflow scan -lH 9", 0));
+               ut_assert_nextline("Scanning for bootflows with label '9'");
+       } else {
+               ut_assertok(run_command("bootflow scan -lH 7", 0));
+               ut_assert_nextline("Scanning for bootflows with label '7'");
+       }
        ut_assert_skip_to_line("(1 bootflow, 1 valid)");


Tested OK with DSA_SANDBOX=y as well as DSA_SANDBOX=n.

 
> BTW, 'fewer', not 'less', if you can count them

Sure :)


Thanks,
-- 
Jerome


More information about the U-Boot mailing list