Hi Tom, On Tue, 13 May 2025 at 00:04, Tom Rini <tr...@konsulko.com> wrote: > > 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 <tr...@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?
No, I agree, I don't see any value in that. > > > > 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. OK Regards, Simon