Move the add_cmdline_checks() call earlier
[kconfig-hardened-check.git] / kconfig_hardened_check / __init__.py
index 0ed7dd349ff4370d947e81390f0815be8c29d466..2938c98682f556693af43db9db6124f1ebd11047 100644 (file)
@@ -189,29 +189,21 @@ class ComplexOptCheck:
                'empty {} check'.format(self.__class__.__name__)
         assert(len(self.opts) != 1), \
                 'useless {} check: {}'.format(self.__class__.__name__, opts)
-        assert(isinstance(opts[0], KconfigCheck) or isinstance(opts[0], CmdlineCheck)), \
+        assert(isinstance(opts[0], (KconfigCheck, CmdlineCheck))), \
                'invalid {} check: {}'.format(self.__class__.__name__, opts)
         self.result = None
 
-    @property
-    def name(self):
-        return self.opts[0].name
-
     @property
     def type(self):
         return 'complex'
 
     @property
-    def expected(self):
-        return self.opts[0].expected
-
-    @property
-    def decision(self):
-        return self.opts[0].decision
+    def name(self):
+        return self.opts[0].name
 
     @property
-    def reason(self):
-        return self.opts[0].reason
+    def expected(self):
+        return self.opts[0].expected
 
     def table_print(self, mode, with_results):
         if mode == 'verbose':
@@ -747,10 +739,10 @@ def populate_simple_opt_with_data(opt, data, data_type):
 
     if data_type in ('kconfig', 'cmdline'):
         opt.state = data.get(opt.name, None)
-    elif data_type == 'version':
-        opt.ver = data
     else:
-        sys.exit('[!] ERROR: unexpected data type "{}"'.format(data_type))
+        assert(data_type == 'version'), \
+               'unexpected data type "{}"'.format(data_type)
+        opt.ver = data
 
 
 def populate_opt_with_data(opt, data, data_type):
@@ -762,8 +754,8 @@ def populate_opt_with_data(opt, data, data_type):
             else:
                 populate_simple_opt_with_data(o, data, data_type)
     else:
-        if opt.type not in ('kconfig', 'cmdline'):
-            sys.exit('[!] ERROR: bad type "{}" for a simple check {}'.format(opt.type, opt.name))
+        assert(opt.type in ('kconfig', 'cmdline')), \
+               'bad type "{}" for a simple check'.format(opt.type)
         populate_simple_opt_with_data(opt, data, data_type)
 
 
@@ -872,6 +864,10 @@ def main():
         # add relevant kconfig checks to the checklist
         add_kconfig_checks(config_checklist, arch)
 
+        if args.cmdline:
+            # add relevant cmdline checks to the checklist
+            add_cmdline_checks(config_checklist, arch)
+
         # populate the checklist with the parsed kconfig data
         parsed_kconfig_options = OrderedDict()
         parse_kconfig_file(parsed_kconfig_options, args.config)
@@ -879,9 +875,6 @@ def main():
         populate_with_data(config_checklist, kernel_version, 'version')
 
         if args.cmdline:
-            # add relevant cmdline checks to the checklist
-            add_cmdline_checks(config_checklist, arch)
-
             # populate the checklist with the parsed kconfig data
             parsed_cmdline_options = OrderedDict()
             parse_cmdline_file(parsed_cmdline_options, args.cmdline)
@@ -912,6 +905,3 @@ def main():
 
     parser.print_help()
     sys.exit(0)
-
-if __name__ == '__main__':
-    main()