diff options
| -rw-r--r-- | meta/classes/testimage.bbclass | 7 | ||||
| -rw-r--r-- | meta/lib/oeqa/utils/dump.py | 42 |
2 files changed, 31 insertions, 18 deletions
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index 824b47f5dd..82cb0110e3 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass | |||
| @@ -63,11 +63,14 @@ testimage_dump_target () { | |||
| 63 | ps | 63 | ps |
| 64 | free | 64 | free |
| 65 | df | 65 | df |
| 66 | _ping | 66 | # The next command will export the default gateway IP |
| 67 | export DEFAULT_GATEWAY=$(ip route | awk '/default/ { print $3}') | ||
| 68 | ping -c3 $DEFAULT_GATEWAY | ||
| 67 | dmesg | 69 | dmesg |
| 68 | netstat -an | 70 | netstat -an |
| 69 | ip address | 71 | ip address |
| 70 | _logs | 72 | # Next command will dump logs from /var/log/ |
| 73 | find /var/log/ -type f 2>/dev/null -exec echo "====================" \; -exec echo {} \; -exec echo "====================" \; -exec cat {} \; -exec echo "" \; | ||
| 71 | } | 74 | } |
| 72 | 75 | ||
| 73 | testimage_dump_host () { | 76 | testimage_dump_host () { |
diff --git a/meta/lib/oeqa/utils/dump.py b/meta/lib/oeqa/utils/dump.py index a0fa699a27..a76aede8c3 100644 --- a/meta/lib/oeqa/utils/dump.py +++ b/meta/lib/oeqa/utils/dump.py | |||
| @@ -11,8 +11,24 @@ def get_host_dumper(d): | |||
| 11 | 11 | ||
| 12 | class BaseDumper(object): | 12 | class BaseDumper(object): |
| 13 | 13 | ||
| 14 | def __init__(self, d): | 14 | def __init__(self, d, cmds): |
| 15 | self.cmds = [] | ||
| 15 | self.parent_dir = d.getVar("TESTIMAGE_DUMP_DIR", True) | 16 | self.parent_dir = d.getVar("TESTIMAGE_DUMP_DIR", True) |
| 17 | for cmd in cmds.split('\n'): | ||
| 18 | cmd = cmd.lstrip() | ||
| 19 | if not cmd or cmd[0] == '#': | ||
| 20 | continue | ||
| 21 | # Replae variables from the datastore | ||
| 22 | while True: | ||
| 23 | index_start = cmd.find("${") | ||
| 24 | if index_start == -1: | ||
| 25 | break | ||
| 26 | index_start += 2 | ||
| 27 | index_end = cmd.find("}", index_start) | ||
| 28 | var = cmd[index_start:index_end] | ||
| 29 | value = d.getVar(var, True) | ||
| 30 | cmd = cmd.replace("${%s}" % var, value) | ||
| 31 | self.cmds.append(cmd) | ||
| 16 | 32 | ||
| 17 | def create_dir(self, dir_suffix): | 33 | def create_dir(self, dir_suffix): |
| 18 | dump_subdir = ("%s_%s" % ( | 34 | dump_subdir = ("%s_%s" % ( |
| @@ -26,7 +42,7 @@ class BaseDumper(object): | |||
| 26 | raise err | 42 | raise err |
| 27 | self.dump_dir = dump_dir | 43 | self.dump_dir = dump_dir |
| 28 | 44 | ||
| 29 | def write_dump(self, command, output): | 45 | def _write_dump(self, command, output): |
| 30 | if isinstance(self, HostDumper): | 46 | if isinstance(self, HostDumper): |
| 31 | prefix = "host" | 47 | prefix = "host" |
| 32 | elif isinstance(self, TargetDumper): | 48 | elif isinstance(self, TargetDumper): |
| @@ -45,33 +61,27 @@ class BaseDumper(object): | |||
| 45 | class HostDumper(BaseDumper): | 61 | class HostDumper(BaseDumper): |
| 46 | 62 | ||
| 47 | def __init__(self, d): | 63 | def __init__(self, d): |
| 48 | super(HostDumper, self).__init__(d) | 64 | host_cmds = d.getVar("testimage_dump_host", True) |
| 49 | self.host_cmds = d.getVar("testimage_dump_host", True) | 65 | super(HostDumper, self).__init__(d, host_cmds) |
| 50 | 66 | ||
| 51 | def dump_host(self, dump_dir=""): | 67 | def dump_host(self, dump_dir=""): |
| 52 | if dump_dir: | 68 | if dump_dir: |
| 53 | self.dump_dir = dump_dir | 69 | self.dump_dir = dump_dir |
| 54 | for cmd in self.host_cmds.split('\n'): | 70 | for cmd in self.cmds: |
| 55 | cmd = cmd.lstrip() | ||
| 56 | if not cmd or cmd[0] == '#': | ||
| 57 | continue | ||
| 58 | result = runCmd(cmd, ignore_status=True) | 71 | result = runCmd(cmd, ignore_status=True) |
| 59 | self.write_dump(cmd.split()[0], result.output) | 72 | self._write_dump(cmd.split()[0], result.output) |
| 60 | 73 | ||
| 61 | 74 | ||
| 62 | class TargetDumper(BaseDumper): | 75 | class TargetDumper(BaseDumper): |
| 63 | 76 | ||
| 64 | def __init__(self, d, qemurunner): | 77 | def __init__(self, d, qemurunner): |
| 65 | super(TargetDumper, self).__init__(d) | 78 | target_cmds = d.getVar("testimage_dump_target", True) |
| 66 | self.target_cmds = d.getVar("testimage_dump_target", True) | 79 | super(TargetDumper, self).__init__(d, target_cmds) |
| 67 | self.runner = qemurunner | 80 | self.runner = qemurunner |
| 68 | 81 | ||
| 69 | def dump_target(self, dump_dir=""): | 82 | def dump_target(self, dump_dir=""): |
| 70 | if dump_dir: | 83 | if dump_dir: |
| 71 | self.dump_dir = dump_dir | 84 | self.dump_dir = dump_dir |
| 72 | for cmd in self.target_cmds.split('\n'): | 85 | for cmd in self.cmds: |
| 73 | cmd = cmd.lstrip() | ||
| 74 | if not cmd or cmd[0] == '#': | ||
| 75 | continue | ||
| 76 | (status, output) = self.runner.run_serial(cmd) | 86 | (status, output) = self.runner.run_serial(cmd) |
| 77 | self.write_dump(cmd.split()[0], output) | 87 | self._write_dump(cmd.split()[0], output) |
