[PATCH v2 1/2] test/py: fit: Deduplicate the test
Quentin Schulz
quentin.schulz at cherry.de
Tue Nov 25 16:29:26 CET 2025
On 11/25/25 3:52 PM, Marek Vasut wrote:
> On 11/25/25 11:50 AM, Quentin Schulz wrote:
>
> Hello Quentin,
>
>> On 11/24/25 8:40 PM, Marek Vasut wrote:
>> [...]
[...]
>>> + """Generate fitImage and test for expected entries.
>>> +
>>> + Generate a fitImage and test whether suitable entries are
>>> part of
>>> + the generated fitImage. Test whether checksums and
>>> signatures are
>>> + part of the generated fitImage.
>>
>> Would be nice to have documentation on what the parameters represent
>> and what this returns/raises. Not a blocker though, I see we already
>> don't do it for other functions.
>
> I am not that deep in python, so if you could tell me how to do that or
> share an example, I can do that.
>
Just follow binman's example I guess. If it's wrong, we'll need to fix
the format everywhere anyway at some point (e.g. when someone manages to
setup rST doc generation from docstring, maybe with [1]?).
"""Get the operation referenced by a subnode
Args:
node (Node): Subnode (of the FIT) to check
Returns:
int: Operation to perform
Raises:
ValueError: Invalid operation name
This seems to follow Google-Style Docstrings format, c.f.
https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings
[1] https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html
>>> + """
>>> + mkimage = ubman.config.build_dir + '/tools/mkimage'
>>> + utils.run_and_log(ubman, mkimage + cmd)
>>> +
>>> + fit = SignedFitHelper(ubman, fit_file)
>>> + if fit.build_nodes_sets() == 0:
>>> + raise ValueError('FIT-1 has no "/image" nor "/
>>> configuration" nodes')
>>> +
>>
>> Only downside is that this exception will be raised with the same
>> string for all callers. We call it multiple times in the same test so
>> it might be difficult to identify which one actually failed. We could
>> try..except the exception, use the content of the exception with
>>
>> try:
>> generate_and_check_fit_image(...)
>> except Exception as e:
>> pytest.fail(f'FIT-X failed: {str(e)}')
>>
>> maybe? (NOT TESTED!)
>
> Maybe it would be better to simply print the test configuration ?
>
> Like this:
>
> raise ValueError(f'FIT has no "/image" nor "/configuration" nodes, test
> settings: cmd={cmd} crc={crc} simgs={simgs} scfgs={scfgs}
> bl31present={bl31present} teepresent={teepresent} key_name={key_name}
> sign_algo={sign_algo} verifier={verifier}')
>
Considering that the only arguments used before this is raised are the
mkimage cmd arguments, I think it'd be enough to just print that? But
yes, that would work.
Cheers,
Quentin
More information about the U-Boot
mailing list