class BaseDumper(object):
+ """ Base class to dump commands from host/target """
def __init__(self, cmds, parent_dir):
self.cmds = []
class HostDumper(BaseDumper):
+ """ Class to get dumps from the host running the tests """
def __init__(self, cmds, parent_dir):
super(HostDumper, self).__init__(cmds, parent_dir)
class TargetDumper(BaseDumper):
+ """ Class to get dumps from target, it only works with QemuRunner """
def __init__(self, cmds, parent_dir, qemurunner):
super(TargetDumper, self).__init__(cmds, parent_dir)
if dump_dir:
self.dump_dir = dump_dir
for cmd in self.cmds:
- (status, output) = self.runner.run_serial(cmd)
- self._write_dump(cmd.split()[0], output)
+ # We can continue with the testing if serial commands fail
+ try:
+ (status, output) = self.runner.run_serial(cmd)
+ self._write_dump(cmd.split()[0], output)
+ except:
+ print("Tried to dump info from target but "
+ "serial console failed")
self.stop()
return False
- (status, output) = self.run_serial("root\n", raw=True)
- if re.search("root@[a-zA-Z0-9\-]+:~#", output):
- self.logged = True
- logger.info("Logged as root in serial console")
- else:
- logger.info("Couldn't login into serial console"
- " as root using blank password")
+ # If we are not able to login the tests can continue
+ try:
+ (status, output) = self.run_serial("root\n", raw=True)
+ if re.search("root@[a-zA-Z0-9\-]+:~#", output):
+ self.logged = True
+ logger.info("Logged as root in serial console")
+ else:
+ logger.info("Couldn't login into serial console"
+ " as root using blank password")
+ except:
+ logger.info("Serial console failed while trying to login")
else:
logger.info("Qemu pid didn't appeared in %s seconds" % self.runqemutime)
stopread = True
break
else:
- sock.close()
- stopread = True
+ raise Exception("No data on serial console socket")
if data:
if raw:
status = 1