Jakub Kicinski wrote: > While writing tests with a lot more cases I got tired of having > to jump back and forth to add the name of the test to the ksft_run() > list. Most unittest frameworks do some name matching, e.g. assume > that functions with names starting with test_ are test cases. > > Support similar flow in ksft_run(). Let the author list the desired > prefixes. globals() need to be passed explicitly, IDK how to work > around that. > > Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> > --- > tools/testing/selftests/drivers/net/ping.py | 3 +-- > tools/testing/selftests/net/lib/py/ksft.py | 10 +++++++++- > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/tools/testing/selftests/drivers/net/ping.py b/tools/testing/selftests/drivers/net/ping.py > index 7dd197836ff1..58aefd3e740f 100755 > --- a/tools/testing/selftests/drivers/net/ping.py > +++ b/tools/testing/selftests/drivers/net/ping.py > @@ -24,8 +24,7 @@ from lib.py import cmd > > def main() -> None: > with NetDrvEpEnv(__file__) as cfg: > - ksft_run([test_v4, test_v6], > - args=(cfg, )) > + ksft_run(globs=globals(), case_pfx={"test_"}, args=(cfg, )) > ksft_exit() > > > diff --git a/tools/testing/selftests/net/lib/py/ksft.py b/tools/testing/selftests/net/lib/py/ksft.py > index 25f2572fa540..fe4025dc5a16 100644 > --- a/tools/testing/selftests/net/lib/py/ksft.py > +++ b/tools/testing/selftests/net/lib/py/ksft.py > @@ -81,7 +81,15 @@ KSFT_RESULT_ALL = True > print(res) > > > -def ksft_run(cases, args=()): > +def ksft_run(cases=None, globs=None, case_pfx=None, args=()): > + cases = cases or [] > + > + if globs and case_pfx: > + for key, value in globs.items(): > + stats_with_pfx = bool([pfx for pfx in case_pfx if key.startswith(pfx)]) stats -> starts for the reader, just spell out prefix instead of pfx? perhaps less pythonic, but just if key.startswith(prefix) and callable(value): cases.append(value) ? > + if callable(value) and stats_with_pfx: > + cases.append(value) > + > totals = {"pass": 0, "fail": 0, "skip": 0, "xfail": 0} > > print("KTAP version 1") > -- > 2.44.0 >