On Thu, 28 Mar 2024 at 19:27, Daniel Latypov dlatypov@google.com 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....