[igt-dev] [PATCH i-g-t 5/5] igt_doc.py: move the main code to a main() function
Kamil Konieczny
kamil.konieczny at linux.intel.com
Tue Nov 28 15:59:45 UTC 2023
Hi Mauro,
On 2023-11-28 at 11:49:00 +0100, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <mchehab at kernel.org>
>
> That avoids having global variables inside the script and
> makes easier to add IGT-specific classes there.
>
> No functional changes.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> scripts/igt_doc.py | 122 ++++++++++++++++++++++++---------------------
> 1 file changed, 65 insertions(+), 57 deletions(-)
>
> diff --git a/scripts/igt_doc.py b/scripts/igt_doc.py
> index 86e49970ea28..ab6179366831 100755
> --- a/scripts/igt_doc.py
> +++ b/scripts/igt_doc.py
> @@ -15,69 +15,77 @@ import sys
>
> from test_list import TestList
>
> -IGT_BUILD_PATH = 'build'
> +def main():
> + """
> + Main logic
> + """
>
> -parser = argparse.ArgumentParser(description = "Print formatted kernel documentation to stdout.",
> - formatter_class = argparse.ArgumentDefaultsHelpFormatter,
> - epilog = 'If no action specified, assume --rest.')
> -parser.add_argument("--config", required = True,
> - help="JSON file describing the test plan template")
> -parser.add_argument("--rest",
> - help="Output documentation from the source files in REST file.")
> -parser.add_argument("--per-test", action="store_true",
> - help="Modifies ReST output to print subtests per test.")
> -parser.add_argument("--to-json",
> - help="Output test documentation in JSON format as TO_JSON file")
> -parser.add_argument("--show-subtests", action="store_true",
> - help="Shows the name of the documented subtests in alphabetical order.")
> -parser.add_argument("--sort-field",
> - help="modify --show-subtests to sort output based on SORT_FIELD value")
> -parser.add_argument("--filter-field", nargs='*',
> - help="filter subtests based on regular expressions given by FILTER_FIELD=~'regex'")
> -parser.add_argument("--check-testlist", action="store_true",
> - help="Compare documentation against IGT built tests.")
> -parser.add_argument("--include-plan", action="store_true",
> - help="Include test plans, if any.")
> -parser.add_argument("--igt-build-path",
> - help="Path to the IGT build directory. Used by --check-testlist.",
> - default=IGT_BUILD_PATH)
> -parser.add_argument("--gen-testlist",
> - help="Generate documentation at the GEN_TESTLIST directory, using SORT_FIELD to split the tests. Requires --sort-field.")
> -parser.add_argument('--files', nargs='+',
> - help="File name(s) to be processed")
> + igt_build_path = 'build'
>
> -parse_args = parser.parse_args()
> + parser = argparse.ArgumentParser(description = "Print formatted kernel documentation to stdout.",
> + formatter_class = argparse.ArgumentDefaultsHelpFormatter,
> + epilog = 'If no action specified, assume --rest.')
> + parser.add_argument("--config", required = True,
> + help="JSON file describing the test plan template")
> + parser.add_argument("--rest",
> + help="Output documentation from the source files in REST file.")
> + parser.add_argument("--per-test", action="store_true",
> + help="Modifies ReST output to print subtests per test.")
> + parser.add_argument("--to-json",
> + help="Output test documentation in JSON format as TO_JSON file")
> + parser.add_argument("--show-subtests", action="store_true",
> + help="Shows the name of the documented subtests in alphabetical order.")
> + parser.add_argument("--sort-field",
> + help="modify --show-subtests to sort output based on SORT_FIELD value")
> + parser.add_argument("--filter-field", nargs='*',
> + help="filter subtests based on regular expressions given by FILTER_FIELD=~'regex'")
> + parser.add_argument("--check-testlist", action="store_true",
> + help="Compare documentation against IGT built tests.")
> + parser.add_argument("--include-plan", action="store_true",
> + help="Include test plans, if any.")
> + parser.add_argument("--igt-build-path",
> + help="Path to the IGT build directory. Used by --check-testlist.",
> + default=igt_build_path)
> + parser.add_argument("--gen-testlist",
> + help="Generate documentation at the GEN_TESTLIST directory, using SORT_FIELD to split the tests. Requires --sort-field.")
> + parser.add_argument('--files', nargs='+',
> + help="File name(s) to be processed")
>
> -tests = TestList(config_fname = parse_args.config,
> - include_plan = parse_args.include_plan,
> - file_list = parse_args.files,
> - igt_build_path = parse_args.igt_build_path)
> + parse_args = parser.parse_args()
>
> -if parse_args.filter_field:
> - for filter_expr in parse_args.filter_field:
> - tests.add_filter(filter_expr)
> + tests = TestList(config_fname = parse_args.config,
> + include_plan = parse_args.include_plan,
> + file_list = parse_args.files,
> + igt_build_path = parse_args.igt_build_path)
>
> -RUN = 0
> -if parse_args.show_subtests:
> - RUN = 1
> - tests.show_subtests(parse_args.sort_field)
> + if parse_args.filter_field:
> + for filter_expr in parse_args.filter_field:
> + tests.add_filter(filter_expr)
>
> -if parse_args.check_testlist:
> - RUN = 1
> - tests.check_tests()
> + run = False
> + if parse_args.show_subtests:
> + run = True
> + tests.show_subtests(parse_args.sort_field)
>
> -if parse_args.gen_testlist:
> - RUN = 1
> - if not parse_args.sort_field:
> - sys.exit("Need a field to split the testlists")
> - tests.gen_testlist(parse_args.gen_testlist, parse_args.sort_field)
> + if parse_args.check_testlist:
> + run = True
> + tests.check_tests()
>
> -if parse_args.to_json:
> - RUN = 1
> - tests.print_json(parse_args.to_json)
> + if parse_args.gen_testlist:
> + run = True
> + if not parse_args.sort_field:
> + sys.exit("Need a field to split the testlists")
> + tests.gen_testlist(parse_args.gen_testlist, parse_args.sort_field)
>
> -if not RUN or parse_args.rest:
> - if parse_args.per_test:
> - tests.print_rest_flat(parse_args.rest)
> - else:
> - tests.print_nested_rest(parse_args.rest)
> + if parse_args.to_json:
> + run = True
> + tests.print_json(parse_args.to_json)
> +
> + if not run or parse_args.rest:
> + if parse_args.per_test:
> + tests.print_rest_flat(parse_args.rest)
> + else:
> + tests.print_nested_rest(parse_args.rest)
> +
> +if __name__ == '__main__':
> + main()
> --
> 2.42.0
>
More information about the igt-dev
mailing list