From: Nikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
To: Daniel Latypov <dlatypov@google.com>
Cc: workflows@vger.kernel.org, Joe Perches <joe@perches.com>,
Andy Whitcroft <apw@canonical.com>, Theodore Ts'o <tytso@mit.edu>,
David Gow <davidgow@google.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mark Brown <broonie@kernel.org>,
Shuah Khan <skhan@linuxfoundation.org>,
"Darrick J . Wong" <djwong@kernel.org>,
kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org,
Veronika Kabatova <vkabatov@redhat.com>,
CKI <cki-project@redhat.com>,
kernelci@lists.linux.dev
Subject: Re: [PATCH 3/3] MAINTAINERS: Require kunit core tests for framework changes
Date: Wed, 22 Nov 2023 19:38:13 +0200 [thread overview]
Message-ID: <ac688ab2-b8b5-42d2-9032-cf23eab6aeed@redhat.com> (raw)
In-Reply-To: <CAGS_qxpfnQ6kmanEUQWosuixo+FGUxp3VJ_TSjBdRf_p9riTSQ@mail.gmail.com>
On 11/20/23 20:48, Daniel Latypov wrote:
> On Wed, Nov 15, 2023 at 9:52 AM Nikolai Kondrashov
> <Nikolai.Kondrashov@redhat.com> wrote:
>> +kunit core
>> +----------
>> +
>> +:Summary: KUnit tests for the framework itself
>> +:Superset: kunit
>> +:Command: tools/testing/kunit/kunit.py run --kunitconfig lib/kunit
>
> Note: we'd want this to instead be
> ./tools/testing/kunit/run_checks.py
>
> That will run, in parallel
> * kunit.py run --kunitconfig lib/kunit
> * kunit_tool_test.py (the unit test for kunit.py)
> * two python type-checkers, if installed
Noted, queued!
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index f81a47d87ac26..5f3261e96c90f 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -11626,6 +11626,7 @@ L: linux-kselftest@vger.kernel.org
>> L: kunit-dev@googlegroups.com
>> S: Maintained
>> W: https://google.github.io/kunit-docs/third_party/kernel/docs/
>> +V: kunit core
>
> Maybe this topic should go in the main thread, but I wanted to call it
> out here since this is a good concrete example.
>
> I'm wondering if this entry could simply be
> V: ./tools/testing/kunit/run_checks.py
>
> And what if, for ext4, we could have multiple of these like
> V: kvm-xfstests smoke
> V: tools/testing/kunit/kunit.py run --kunitconfig fs/ext4
>
> I.e. what if we allowed the `V:` field to contain the command itself?
>
> # Complexity of the tests
>
> I appreciate the current "named test-set" approach since it encourages
> documenting *why* the test command is applicable.
> And for a lot of tests, it's not as simple as a binary GOOD/BAD
> result, e.g. benchmarks.
> Patch authors need to understand what they're testing, if they're
> testing the right thing, etc.
>
> But on the other hand, for simpler functional tests (e.g. KUnit),
> maybe it's not necessary.
> Ideally, KUnit tests should be written so the failure messages are
> immediately actionable w/o having to read a couple paragraphs.
> I.e. the test case names should make it clear what scenario they're
> testing, or the test code should be sufficiently documented, etc.
>
> # Variations on commands
>
> And there might be a bunch of slight variations on these commands,
> e.g. only different in terms of `--kunitconfig`.
> We'd probably have at least 18, given
> $ find -type f -name '.kunitconfig' | wc -l
> 18
>
> And again using a kunit.py flag as an example, what if maintainers want KASAN?
> ./tools/testing/kunit/kunit.py run --kunitconfig lib/kunit
> --kconfig_add CONFIG_KASAN=y
> Or what if it's too annoying to split up a larger kunit suite, so I
> ask people to run a subset?
> ./tools/testing/kunit/kunit.py run --kunitconfig lib/kunit <suite_glob>
>
>
> P.S.
> Tbh, I have always hoped we'd eventually have a field like
> V: <one-liner test command>
>
> That is part of why I added all those features above (--kunitconfig,
> --kconfig_add, glob support, run_checks.py, etc.).
> I wanted kunit.py to be flexible enough that maintainers could state
> their testing requirements as a one-liner that people can just
> copy-paste and run.
>
> Also, I recently talked to David Gow and I know he was interested in
> adding another feature to kunit.py to fit this use case.
> Namely, the ability to do something like
> kunit.py run --arches=x86_64,s390,...
> and have it run the tests built across N different arches and maybe w/
> M different kconfig options (e.g. a variation built w/ clang, etc.).
>
> That would be another very powerful tool for maintainers to have.
>
> Thanks so much for this patch series and starting this discussion!
I'm a bit squeamish about just letting commands into the V: fields, as it
hurts discoverability of the documentation (or even just a simple description
of what the command does), and then checkpatch.pl would have a problem
identifying the modified command in Tested-with:.
OTOH, we're all hackers here, and I understand where these arguments are
coming from, and as I said in other branches, I think command-first should be
our ultimate target, not instructions-first. Also, if each of these commands
supports the -h/--help options and manages to make sense in their output, it
makes things somewhat better.
All-in-all, I think we can have both the already-implemented "V: test name ->
catalogue -> command" route, and the "V: command" one.
Something like this for the commands:
V: tools/testing/kunit/run_checks.py
and
V: "kvm-xfstests smoke"
for test names referencing the catalogue.
Then make checkpatch.pl verify only the presence of Tested-with: tag for the
latter, and leave verifying the (more fluid) commands to humans.
Thanks for all the comments, explanations, and details, Daniel!
Nick
next prev parent reply other threads:[~2023-11-22 17:38 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-15 17:43 [RFC PATCH 0/3] MAINTAINERS: Introduce V: field for required tests Nikolai Kondrashov
2023-11-15 17:43 ` [PATCH 1/3] " Nikolai Kondrashov
2023-11-15 18:31 ` Joe Perches
2023-11-15 20:01 ` Mark Brown
2023-11-16 12:00 ` Nikolai Kondrashov
2023-11-15 20:14 ` Mark Brown
2023-11-16 12:09 ` Nikolai Kondrashov
2023-11-15 20:38 ` Konstantin Ryabitsev
2023-11-16 12:14 ` Nikolai Kondrashov
2023-11-16 13:26 ` Mark Brown
2023-11-16 13:52 ` Nikolai Kondrashov
2023-11-20 12:40 ` Gustavo Padovan
2023-11-20 13:31 ` Mark Brown
2023-11-22 17:41 ` Nikolai Kondrashov
2023-11-16 13:20 ` Bagas Sanjaya
2023-11-16 13:41 ` Nikolai Kondrashov
2023-11-16 13:43 ` Bagas Sanjaya
2023-11-16 13:59 ` Greg Kroah-Hartman
2023-11-16 14:21 ` Geert Uytterhoeven
2023-11-20 13:30 ` Ricardo Cañuelo
2023-11-20 20:51 ` Theodore Ts'o
2023-11-20 22:27 ` Mark Brown
2023-11-21 6:04 ` Theodore Ts'o
2023-11-21 10:37 ` David Gow
2023-11-21 13:27 ` Mark Brown
2023-11-22 16:16 ` Theodore Ts'o
2023-11-21 18:24 ` Nikolai Kondrashov
2023-11-21 18:02 ` Nikolai Kondrashov
2023-11-21 10:36 ` David Gow
2023-11-21 20:48 ` Mark Brown
2023-11-22 17:19 ` Nikolai Kondrashov
2023-11-22 1:08 ` kernel test robot
2023-11-15 17:43 ` [PATCH 2/3] MAINTAINERS: Require kvm-xfstests smoke for ext4 Nikolai Kondrashov
2023-11-15 18:58 ` Darrick J. Wong
2023-11-16 16:33 ` Nikolai Kondrashov
2023-11-17 7:09 ` Chandan Babu R
2023-11-19 22:54 ` Theodore Ts'o
2023-11-22 14:44 ` Nikolai Kondrashov
2023-11-22 16:17 ` Darrick J. Wong
2023-11-22 17:44 ` Nikolai Kondrashov
2023-11-22 20:51 ` Dave Chinner
2023-11-15 17:43 ` [PATCH 3/3] MAINTAINERS: Require kunit core tests for framework changes Nikolai Kondrashov
2023-11-20 18:48 ` Daniel Latypov
2023-11-22 17:38 ` Nikolai Kondrashov [this message]
2023-12-05 18:02 ` [RFC PATCH v2 00/10] MAINTAINERS: Introduce V: entry for tests Nikolai Kondrashov
2023-12-05 18:02 ` [RFC PATCH v2 01/10] get_maintainer: Survive querying missing files Nikolai Kondrashov
2023-12-05 18:55 ` Joe Perches
2023-12-06 16:16 ` Nikolai Kondrashov
2024-01-31 13:55 ` Nikolai Kondrashov
2023-12-05 18:02 ` [RFC PATCH v2 02/10] MAINTAINERS: Introduce V: entry for tests Nikolai Kondrashov
2023-12-05 18:58 ` Joe Perches
2023-12-06 16:21 ` Nikolai Kondrashov
2023-12-06 8:12 ` David Gow
2023-12-06 16:23 ` Nikolai Kondrashov
2023-12-06 16:38 ` Joe Perches
2023-12-06 16:57 ` Nikolai Kondrashov
2023-12-05 18:02 ` [RFC PATCH v2 03/10] MAINTAINERS: Propose kunit core tests for framework changes Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 04/10] docs: submitting-patches: Introduce Tested-with: Nikolai Kondrashov
2023-12-05 18:59 ` Jonathan Corbet
2023-12-05 19:07 ` Joe Perches
2023-12-06 10:07 ` Geert Uytterhoeven
2023-12-06 16:46 ` Nikolai Kondrashov
2023-12-06 16:31 ` Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 05/10] checkpatch: Propose tests to execute Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 06/10] MAINTAINERS: Support referencing test docs in V: Nikolai Kondrashov
2023-12-06 8:03 ` David Gow
2023-12-06 16:54 ` Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 07/10] MAINTAINERS: Propose kvm-xfstests smoke for ext4 Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 08/10] docs: tests: Document kunit in general Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 09/10] MAINTAINERS: Propose kunit tests for regmap Nikolai Kondrashov
2023-12-05 18:03 ` [RFC PATCH v2 10/10] MAINTAINERS: Add proposal strength to V: entries Nikolai Kondrashov
2024-01-08 10:42 ` [RFC PATCH v2 00/10] MAINTAINERS: Introduce V: entry for tests Nikolai Kondrashov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ac688ab2-b8b5-42d2-9032-cf23eab6aeed@redhat.com \
--to=nikolai.kondrashov@redhat.com \
--cc=apw@canonical.com \
--cc=broonie@kernel.org \
--cc=cki-project@redhat.com \
--cc=davidgow@google.com \
--cc=djwong@kernel.org \
--cc=dlatypov@google.com \
--cc=joe@perches.com \
--cc=kernelci@lists.linux.dev \
--cc=kunit-dev@googlegroups.com \
--cc=linux-kselftest@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=skhan@linuxfoundation.org \
--cc=tytso@mit.edu \
--cc=vkabatov@redhat.com \
--cc=workflows@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox