From f4ecbe8aba23d205d770a4a7cbff131be6408a49 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Sun, 23 Jan 2022 02:15:13 +0300 Subject: [PATCH] Extract populate_with_data() from perform_checks() --- kconfig_hardened_check/__init__.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/kconfig_hardened_check/__init__.py b/kconfig_hardened_check/__init__.py index 639be27..5f10d59 100644 --- a/kconfig_hardened_check/__init__.py +++ b/kconfig_hardened_check/__init__.py @@ -673,13 +673,13 @@ def print_checklist(mode, checklist, with_results): print('[+] Config check is finished: \'OK\' - {}{} / \'FAIL\' - {}{}'.format(ok_count, ok_suppressed, fail_count, fail_suppressed)) -def perform_check(opt, parsed_options, kernel_version): +def populate_opt_with_data(opt, parsed_options, kernel_version): if hasattr(opt, 'opts'): # prepare ComplexOptCheck for o in opt.opts: if hasattr(o, 'opts'): # Recursion for nested ComplexOptChecks - perform_check(o, parsed_options, kernel_version) + populate_opt_with_data(o, parsed_options, kernel_version) if hasattr(o, 'state'): o.state = parsed_options.get(o.name, None) if hasattr(o, 'ver'): @@ -689,12 +689,16 @@ def perform_check(opt, parsed_options, kernel_version): if not hasattr(opt, 'state'): sys.exit('[!] ERROR: bad simple check {}'.format(vars(opt))) opt.state = parsed_options.get(opt.name, None) - opt.check() -def perform_checks(checklist, parsed_options, kernel_version): +def populate_with_data(checklist, parsed_options, kernel_version): for opt in checklist: - perform_check(opt, parsed_options, kernel_version) + populate_opt_with_data(opt, parsed_options, kernel_version) + + +def perform_checks(checklist): + for opt in checklist: + opt.check() def parse_kconfig_file(parsed_options, fname): @@ -769,11 +773,15 @@ def main(): # add relevant kconfig checks to the checklist add_kconfig_checks(config_checklist, arch) + # populate the checklist with the parsed kconfig data parsed_kconfig_options = OrderedDict() parse_kconfig_file(parsed_kconfig_options, args.config) + populate_with_data(config_checklist, parsed_kconfig_options, kernel_version) - perform_checks(config_checklist, parsed_kconfig_options, kernel_version) + # now everything is ready for performing the checks + perform_checks(config_checklist) + # finally print the results if mode == 'verbose': print_unknown_options(config_checklist, parsed_kconfig_options) print_checklist(mode, config_checklist, True) -- 2.31.1