On 12/6/23 10:03, David Gow wrote:
On Wed, 6 Dec 2023 at 02:45, Nikolai Kondrashov
<Nikolai.Kondrashov@xxxxxxxxxx> wrote:
Support referencing test suite documentation in the V: entries of
MAINTAINERS file. Use the '*<name>' syntax (like C pointer dereference),
where '<name>' is a second-level heading in the new
Documentation/process/tests.rst file, with the suite's description.
This syntax allows distinguishing the references from test commands.
>
I like the idea here, but wonder whether it makes sense to put all of
these tests into a single 'tests.rst' file. There's already lots of
existing documentation scattered around the tree, and while keeping
all of the testing information in one place does have advantages, I
think there's a lot to be said for keeping subsystem-specific test
docs alongside the rest of the documentation for the subsystem itself.
And it'd be less work, as the docs are already there.
So, could we just make this a path under Documentation/ (possibly with
an #anchor if we need to reference just one part of a file)?
e.g., something like these, all of which are existing docs:
V: *Documentation/dev-tools/kasan.rst#Tests
or
V: *Dcoumentation/RCU/torture.rst
or
V: *Documentation/gpu/automated_testing.rst
or
V: *Documentation/process/maintainer-kvm-x86.rst#Testing
(We could even get rid of the '*' and just use 'Documentation/' as a
prefix, or the executable bit on the file, or similar to distinguish
these from scripts.)
If we wanted to be very brave, we could extend this further to
arbitrary webpages, like:
V: https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/tree/README
Sure, having a filename (in a specific directory) or a just piece of path in
the source (sub)tree would work too. The idea of single file was mostly to
make it easier to access a *catalog* of all tests in a single file with small
bits of introductory documentation, pointing to the more detailed
documentation (wherever you prefer it to be) from there.
URLs would work as well for pointing to the docs, but they become somewhat
more cumbersome and error-prone for use in Tested-with: tags (if we would like
them), just because of their length and complexity. If we won't care for that,
it's not a problem.
However, overall, I would be cautious multiplying the ways tests can be
specified in V: entries (and Tested-with: tags), as that could quickly become
unwieldy and confusing for humans, who are expected to be interpreting and
writing them. Especially if the syntax could potentially be ambiguous.
Nick