Turn some error conditions into assertions (part 3)
[kconfig-hardened-check.git] / kconfig_hardened_check / __init__.py
index 45bd9d5c49110a61999e2a43fae4c33bf78d5c5f..0ed7dd349ff4370d947e81390f0815be8c29d466 100644 (file)
@@ -252,9 +252,10 @@ class OR(ComplexOptCheck):
                         self.result = 'OK: {} not found'.format(opt.name)
                     elif opt.result == 'OK: is present':
                         self.result = 'OK: {} is present'.format(opt.name)
-                    # VersionCheck provides enough info
-                    elif not opt.result.startswith('OK: version'):
-                        sys.exit('[!] ERROR: unexpected OK description "{}"'.format(opt.result))
+                    else:
+                        # VersionCheck provides enough info
+                        assert(opt.result.startswith('OK: version')), \
+                               'unexpected OK description "{}"'.format(opt.result)
                 return
         self.result = self.opts[0].result
 
@@ -282,8 +283,8 @@ class AND(ComplexOptCheck):
                 else:
                     # VersionCheck provides enough info
                     self.result = opt.result
-                    if not opt.result.startswith('FAIL: version'):
-                        sys.exit('[!] ERROR: unexpected FAIL description "{}"'.format(opt.result))
+                    assert(opt.result.startswith('FAIL: version')), \
+                           'unexpected FAIL description "{}"'.format(opt.result)
                 return
 
 
@@ -675,8 +676,8 @@ def print_unknown_options(checklist, parsed_options):
                     known_options.append(o2.name)
                 continue
             for o3 in o2.opts:
-                if o3.type == 'complex':
-                    sys.exit('[!] ERROR: unexpected ComplexOptCheck inside {}'.format(o2.name))
+                assert(o3.type != 'complex'), \
+                       'unexpected ComplexOptCheck inside {}'.format(o2.name)
                 if hasattr(o3, 'name'):
                     known_options.append(o3.name)
 
@@ -734,12 +735,12 @@ def print_checklist(mode, checklist, with_results):
 
 
 def populate_simple_opt_with_data(opt, data, data_type):
-    if opt.type == 'complex':
-        sys.exit('[!] ERROR: unexpected ComplexOptCheck {}: {}'.format(opt.name, vars(opt)))
-    if opt.type not in SIMPLE_OPTION_TYPES:
-        sys.exit('[!] ERROR: invalid opt type "{}" for {}'.format(opt.type, opt.name))
-    if data_type not in SIMPLE_OPTION_TYPES:
-        sys.exit('[!] ERROR: invalid data type "{}"'.format(data_type))
+    assert(opt.type != 'complex'), \
+           'unexpected ComplexOptCheck "{}"'.format(opt.name)
+    assert(opt.type in SIMPLE_OPTION_TYPES), \
+           'invalid opt type "{}"'.format(opt.type)
+    assert(data_type in SIMPLE_OPTION_TYPES), \
+           'invalid data type "{}"'.format(data_type)
 
     if data_type != opt.type:
         return