in image_test/configuration/linux/generic_distro.py [0:0]
def TestKernelCmdargs(self):
"""
Ensure boot loader configuration for console logging is correct.
Ensure boot loader kernel command line args (per distro).
"""
def ReadCmdline():
cmdline = open(self.GetCmdlineLocation()).read()
# Store values as: { # e.g: "console=ttyS0,38400n8 ro"
# 'console': ['ttyS0', '38400n8'],
# 'ro': [],
# }
configs = {}
args = []
for line in cmdline.split('\n'):
if line:
args.extend(line.split(' '))
for arg in args:
v = arg.split('=')
if len(v) > 1:
configs[v[0]] = [i.replace('"', '').strip() for i in v[1].split(',')]
else:
configs[v[0]] = []
return configs
desired_configs = self.GetCmdlineConfigs()
cur_configs = ReadCmdline()
try:
for desired_config, desired_values in desired_configs.items():
for desired_value in desired_values:
cur_value = cur_configs[desired_config]
if desired_value:
if desired_value not in cur_value:
e = 'Desired cmdline arg "%s" with value "%s" not found in "%s"'
raise Exception(e % (desired_config, desired_value, cur_value))
else:
# empty list
if cur_value:
e = 'Desired cmdline arg "%s" should not be defined as "%s"'
raise Exception(e % (desired_config, cur_value))
except KeyError as e:
raise Exception('Desired cmdline arg "%s" not found' % e.args[0])