mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
unittests: test_kdoc_parser: add command line arg to read a YAML file
The test_kdoc_parser.py already supports loading dynamic tests when running unit tests. Add support to read from a different file. This is useful for: - regression tests before/afer some changes; - preparing new unit tests; - test a different yaml before adding its contents at tools/unittests/kdoc-test.yaml. It should be noticed that passing an argument to a unit test is not too trivial, as unittest core will load itself the runner with a separate environment. The best (only?) way to do it is by setting the system environment. This way, when the class is called by the unit test loader, it can pick the var from the environment without relying on a global variable. The unittest_helper has already provision for it, so let's use its support. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <1d1a56de012c43756f9ca87aa9bf6c285674f113.1774256269.git.mchehab+huawei@kernel.org>
This commit is contained in:
parent
625ce45f2c
commit
3f049a5ba9
|
|
@ -30,7 +30,7 @@ from kdoc.kdoc_output import RestFormat, ManFormat
|
|||
|
||||
from kdoc.xforms_lists import CTransforms
|
||||
|
||||
from unittest_helper import run_unittest
|
||||
from unittest_helper import TestUnits
|
||||
|
||||
|
||||
#
|
||||
|
|
@ -38,6 +38,10 @@ from unittest_helper import run_unittest
|
|||
#
|
||||
TEST_FILE = os.path.join(SRC_DIR, "kdoc-test.yaml")
|
||||
|
||||
env = {
|
||||
"yaml_file": TEST_FILE
|
||||
}
|
||||
|
||||
#
|
||||
# Ancillary logic to clean whitespaces
|
||||
#
|
||||
|
|
@ -470,7 +474,9 @@ class KernelDocDynamicTests():
|
|||
optional ones.
|
||||
"""
|
||||
|
||||
with open(TEST_FILE, encoding="utf-8") as fp:
|
||||
test_file = os.environ.get("yaml_file", TEST_FILE)
|
||||
|
||||
with open(test_file, encoding="utf-8") as fp:
|
||||
testset = yaml.safe_load(fp)
|
||||
|
||||
tests = testset["tests"]
|
||||
|
|
@ -531,4 +537,15 @@ KernelDocDynamicTests.create_tests()
|
|||
# Run all tests
|
||||
#
|
||||
if __name__ == "__main__":
|
||||
run_unittest(__file__)
|
||||
runner = TestUnits()
|
||||
parser = runner.parse_args()
|
||||
parser.add_argument("-y", "--yaml-file", "--yaml",
|
||||
help='Name of the yaml file to load')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.yaml_file:
|
||||
env["yaml_file"] = os.path.expanduser(args.yaml_file)
|
||||
|
||||
# Run tests with customized arguments
|
||||
runner.run(__file__, parser=parser, args=args, env=env)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user