projects
/
kconfig-hardened-check.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
78675ce
)
Introduce the SysctlCheck class
author
Alexander Popov
<alex.popov@linux.com>
Sat, 8 Jul 2023 20:40:49 +0000
(23:40 +0300)
committer
Alexander Popov
<alex.popov@linux.com>
Sat, 8 Jul 2023 20:40:49 +0000
(23:40 +0300)
Refers to #65
kconfig_hardened_check/engine.py
patch
|
blob
|
history
diff --git
a/kconfig_hardened_check/engine.py
b/kconfig_hardened_check/engine.py
index e9140447c90bf697d9a18b41ef39bc32bb72ead2..8f3191bd75182caeb390c14f30e78edd1645d9e7 100644
(file)
--- a/
kconfig_hardened_check/engine.py
+++ b/
kconfig_hardened_check/engine.py
@@
-103,6
+103,12
@@
class CmdlineCheck(OptCheck):
return 'cmdline'
return 'cmdline'
+class SysctlCheck(OptCheck):
+ @property
+ def type(self):
+ return 'sysctl'
+
+
class VersionCheck:
def __init__(self, ver_expected):
assert(ver_expected and isinstance(ver_expected, tuple) and len(ver_expected) == 2), \
class VersionCheck:
def __init__(self, ver_expected):
assert(ver_expected and isinstance(ver_expected, tuple) and len(ver_expected) == 2), \
@@
-141,7
+147,7
@@
class ComplexOptCheck:
f'empty {self.__class__.__name__} check'
assert(len(self.opts) != 1), \
f'useless {self.__class__.__name__} check: {opts}'
f'empty {self.__class__.__name__} check'
assert(len(self.opts) != 1), \
f'useless {self.__class__.__name__} check: {opts}'
- assert(isinstance(opts[0], (KconfigCheck, CmdlineCheck))), \
+ assert(isinstance(opts[0], (KconfigCheck, CmdlineCheck
, SysctlCheck
))), \
f'invalid {self.__class__.__name__} check: {opts}'
self.result = None
f'invalid {self.__class__.__name__} check: {opts}'
self.result = None
@@
-238,7
+244,7
@@
class AND(ComplexOptCheck):
return
return
-SIMPLE_OPTION_TYPES = ('kconfig', '
version', 'cmdline
')
+SIMPLE_OPTION_TYPES = ('kconfig', '
cmdline', 'sysctl', 'version
')
def populate_simple_opt_with_data(opt, data, data_type):
def populate_simple_opt_with_data(opt, data, data_type):
@@
-254,7
+260,7
@@
def populate_simple_opt_with_data(opt, data, data_type):
if data_type != opt.type:
return
if data_type != opt.type:
return
- if data_type in ('kconfig', 'cmdline'):
+ if data_type in ('kconfig', 'cmdline'
, 'sysctl'
):
opt.state = data.get(opt.name, None)
else:
assert(data_type == 'version'), \
opt.state = data.get(opt.name, None)
else:
assert(data_type == 'version'), \
@@
-271,8
+277,8
@@
def populate_opt_with_data(opt, data, data_type):
else:
populate_simple_opt_with_data(o, data, data_type)
else:
else:
populate_simple_opt_with_data(o, data, data_type)
else:
- assert(opt.type
in ('kconfig', 'cmdline')
), \
-
f'bad type "{opt.type}" for a simple check
'
+ assert(opt.type
!= 'version'
), \
+
'a simple check with a single VersionCheck is useless
'
populate_simple_opt_with_data(opt, data, data_type)
populate_simple_opt_with_data(opt, data, data_type)
@@
-284,7
+290,7
@@
def populate_with_data(checklist, data, data_type):
def override_expected_value(checklist, name, new_val):
for opt in checklist:
if opt.name == name:
def override_expected_value(checklist, name, new_val):
for opt in checklist:
if opt.name == name:
- assert(opt.type in ('kconfig', 'cmdline')), \
+ assert(opt.type in ('kconfig', 'cmdline'
, 'sysctl'
)), \
f'overriding an expected value for "{opt.type}" checks is not supported yet'
opt.expected = new_val
f'overriding an expected value for "{opt.type}" checks is not supported yet'
opt.expected = new_val