mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 01:51:34 +00:00
selftests: net: support matching cases by name prefix
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. Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/r/20240420025237.3309296-6-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a48a87c086
commit
01b431641c
@ -18,8 +18,7 @@ def test_v6(cfg) -> None:
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
@ -99,7 +99,18 @@ def ktap_result(ok, cnt=1, case="", comment=""):
|
||||
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():
|
||||
if not callable(value):
|
||||
continue
|
||||
for prefix in case_pfx:
|
||||
if key.startswith(prefix):
|
||||
cases.append(value)
|
||||
break
|
||||
|
||||
totals = {"pass": 0, "fail": 0, "skip": 0, "xfail": 0}
|
||||
|
||||
print("KTAP version 1")
|
||||
|
Loading…
Reference in New Issue
Block a user