Re: [PATCH] Documentation: kunit: Clarify test filter format

From: Brendan Jackman
Date: Tue Apr 02 2024 - 05:52:37 EST


On Thu, 28 Mar 2024 at 19:27, Daniel Latypov <dlatypov@xxxxxxxxxx> wrote:
> This current wording and examples (before and after this change) might
> make the user think otherwise, i.e. that it works like
> effective_name = suite_name + '.' + test_name
> return glob_matches(effective_name, filter_glob)
>
> E.g. given a test name like `suite.test_name` and glob='suite*name'
> they might expect it to match, but it does *not*.
>
> The logic actually works like:
> suite_glob, test_glob = split(filter_glob)
> if not_glob_matches(suite_name, suite_glob):
> return False
> if test_glob and not glob_matches(test_name, test_glob):
> return False
> return True
>
> Perhaps expanding the list of examples to cover more of the edge cases
> could help get the right intuition?
>
> E.g. perhaps these:
> kunit.py run <suite_name> # runs all tests in a specific suite
> kunit.py run <suite_name>.<test_name> # run a specific test
>
> kunit.py run suite_prefix* # what the current example shows
> kunit.py run *.*test_suffix # matches all suites, only tests w/ a
> certain suffix
> kunit.py run suite_prefix*.*test_suffix # combined version of above
>
> Thoughts?

Thanks yeah, good point. The result is pretty verbose but it doesn't
create much cognitive load for the reader so might as well just be
really explicit. v2 incoming if `make htmldocs` ever finishes....