[PATCH 0/3] doc: Document remaining test_b* tests

Tom Rini trini at konsulko.com
Tue May 13 00:04:39 CEST 2025


On Sat, May 10, 2025 at 01:27:23PM +0200, Simon Glass wrote:
> Hi Tom,
> 
> On Thu, 8 May 2025 at 23:42, Tom Rini <trini at konsulko.com> wrote:
> >
> > Hey all,
> >
> > This short series is a follow-up to my last series. It could have been
> > longer, but I think this is a good point to get some feedback on a few
> > points.
> >
> > As background, something I wondered about and the answer seems to be No
> > is, can we automatically take things like:
> > @pytest.mark.buildconfigspec('cmd_button')
> > and get some nice output? Since we can't that limits the value,
> > possibly, of generating some documentation.
> >
> > First, as this series shows, is there value in documenting tests which
> > do not require additional configuration? We have some tests with no
> > comments and some that are fully commented, but at the end of the day
> > when trying to run these tests, pytest will already say helpful things
> > like not being supported on a given platform, or not run because
> > something isn't enabled in the build. Spelling that out in generated
> > documentation would require duplication of work.
> 
> Yes, I agree. I think the code is the best place for most of the docs.

> 
> >
> > Second, is there value in documenting arguments? Especially ones like
> > "ubman" that are just required and always present?
> 
> I like documenting arguments, since when people see the docs they
> continue the trend. Python suffers terribly from a 'def
> my_function(*args, **kwargs)' disease where you have to spend hours
> spelunking around to figure out what is actually valid as an argument.
> Highly Pythonic, but dreadful.

Maybe I wasn't clear in these two points. Let us use
test/py/tests/test_cat.py as a concrete example. Today, most of the file
is:
# SPDX-License-Identifier:      GPL-2.0+

""" Unit test for cat command
"""

import pytest
from subprocess import call, check_call, CalledProcessError
from tests import fs_helper

@pytest.mark.boardspec('sandbox')
@pytest.mark.buildconfigspec('cmd_cat')
def test_cat(ubman):
    """ Unit test for cat

    Args:
        ubman -- U-Boot console
    """
    try:
    ....

My point and question is that "@pytest.mark.buildconfigspec('cmd_cat')"
will not be translated to generated documentation, but also that if you
try and run this test outside of sandbox, pytest already tells you it's
not supported, and a similar error if sandbox but not cmd_cat.

So is there any value in adding doc/develop/pytest/test_cat.rst that
will consume the above and generate valid documentation that I'm not
sure would ever be read?

> > Third, should we document internal functions too, or just the tests? I
> > would be inclined to say no unless they're expected to be re-used. The
> > test_net functions to bring up the networking are an example that of
> > reuse that should be documented for example.
> 
> Sounds right. But I am likely to continue to document all Python
> functions, since I never know when I'm going to want to export
> something for use elsewhere.

I'm certainly not saying we shouldn't comment the code, but perhaps
a follow-up to document test/py/tests/test_distro.py would clarify some
of what I'm asking about in your mind.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250512/87c9f769/attachment.sig>


More information about the U-Boot mailing list