Commit d50ea2d4 by Alexander Popov

Introduce the SysctlCheck class

Refers to #65
parent 78675cee
...@@ -103,6 +103,12 @@ class CmdlineCheck(OptCheck): ...@@ -103,6 +103,12 @@ class CmdlineCheck(OptCheck):
return 'cmdline' return 'cmdline'
class SysctlCheck(OptCheck):
@property
def type(self):
return 'sysctl'
class VersionCheck: class VersionCheck:
def __init__(self, ver_expected): def __init__(self, ver_expected):
assert(ver_expected and isinstance(ver_expected, tuple) and len(ver_expected) == 2), \ assert(ver_expected and isinstance(ver_expected, tuple) and len(ver_expected) == 2), \
...@@ -141,7 +147,7 @@ class ComplexOptCheck: ...@@ -141,7 +147,7 @@ class ComplexOptCheck:
f'empty {self.__class__.__name__} check' f'empty {self.__class__.__name__} check'
assert(len(self.opts) != 1), \ assert(len(self.opts) != 1), \
f'useless {self.__class__.__name__} check: {opts}' 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}' f'invalid {self.__class__.__name__} check: {opts}'
self.result = None self.result = None
...@@ -238,7 +244,7 @@ class AND(ComplexOptCheck): ...@@ -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): ...@@ -254,7 +260,7 @@ def populate_simple_opt_with_data(opt, data, data_type):
if data_type != opt.type: if data_type != opt.type:
return return
if data_type in ('kconfig', 'cmdline'): if data_type in ('kconfig', 'cmdline', 'sysctl'):
opt.state = data.get(opt.name, None) opt.state = data.get(opt.name, None)
else: else:
assert(data_type == 'version'), \ assert(data_type == 'version'), \
...@@ -271,8 +277,8 @@ def populate_opt_with_data(opt, data, data_type): ...@@ -271,8 +277,8 @@ def populate_opt_with_data(opt, data, data_type):
else: else:
populate_simple_opt_with_data(o, data, data_type) populate_simple_opt_with_data(o, data, data_type)
else: else:
assert(opt.type in ('kconfig', 'cmdline')), \ assert(opt.type != 'version'), \
f'bad type "{opt.type}" for a simple check' '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): ...@@ -284,7 +290,7 @@ def populate_with_data(checklist, data, data_type):
def override_expected_value(checklist, name, new_val): def override_expected_value(checklist, name, new_val):
for opt in checklist: for opt in checklist:
if opt.name == name: 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' f'overriding an expected value for "{opt.type}" checks is not supported yet'
opt.expected = new_val opt.expected = new_val
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment