diff options
Diffstat (limited to 'meta/lib/oeqa/targetcontrol.py')
-rw-r--r-- | meta/lib/oeqa/targetcontrol.py | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py index 19f5a4ea7e..6e8b781973 100644 --- a/meta/lib/oeqa/targetcontrol.py +++ b/meta/lib/oeqa/targetcontrol.py | |||
@@ -7,17 +7,14 @@ | |||
7 | # This module is used by testimage.bbclass for setting up and controlling a target machine. | 7 | # This module is used by testimage.bbclass for setting up and controlling a target machine. |
8 | 8 | ||
9 | import os | 9 | import os |
10 | import shutil | ||
11 | import subprocess | 10 | import subprocess |
12 | import bb | 11 | import bb |
13 | import traceback | ||
14 | import sys | ||
15 | import logging | 12 | import logging |
16 | from oeqa.utils.sshcontrol import SSHControl | 13 | from oeqa.utils.sshcontrol import SSHControl |
17 | from oeqa.utils.qemurunner import QemuRunner | 14 | from oeqa.utils.qemurunner import QemuRunner |
18 | from oeqa.utils.qemutinyrunner import QemuTinyRunner | 15 | from oeqa.utils.qemutinyrunner import QemuTinyRunner |
19 | from oeqa.utils.dump import TargetDumper | 16 | from oeqa.utils.dump import TargetDumper |
20 | from oeqa.controllers.testtargetloader import TestTargetLoader | 17 | from oeqa.utils.dump import MonitorDumper |
21 | from abc import ABCMeta, abstractmethod | 18 | from abc import ABCMeta, abstractmethod |
22 | 19 | ||
23 | class BaseTarget(object, metaclass=ABCMeta): | 20 | class BaseTarget(object, metaclass=ABCMeta): |
@@ -41,7 +38,7 @@ class BaseTarget(object, metaclass=ABCMeta): | |||
41 | if os.path.islink(sshloglink): | 38 | if os.path.islink(sshloglink): |
42 | os.unlink(sshloglink) | 39 | os.unlink(sshloglink) |
43 | os.symlink(self.sshlog, sshloglink) | 40 | os.symlink(self.sshlog, sshloglink) |
44 | self.logger.info("SSH log file: %s" % self.sshlog) | 41 | self.logger.info("SSH log file: %s" % self.sshlog) |
45 | 42 | ||
46 | @abstractmethod | 43 | @abstractmethod |
47 | def start(self, params=None, ssh=True, extra_bootparams=None): | 44 | def start(self, params=None, ssh=True, extra_bootparams=None): |
@@ -106,8 +103,7 @@ class QemuTarget(BaseTarget): | |||
106 | self.rootfs = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), d.getVar("IMAGE_LINK_NAME") + '.' + self.image_fstype) | 103 | self.rootfs = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), d.getVar("IMAGE_LINK_NAME") + '.' + self.image_fstype) |
107 | self.kernel = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), d.getVar("KERNEL_IMAGETYPE", False) + '-' + d.getVar('MACHINE', False) + '.bin') | 104 | self.kernel = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), d.getVar("KERNEL_IMAGETYPE", False) + '-' + d.getVar('MACHINE', False) + '.bin') |
108 | self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime) | 105 | self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime) |
109 | dump_target_cmds = d.getVar("testimage_dump_target") | 106 | dump_monitor_cmds = d.getVar("testimage_dump_monitor") |
110 | dump_host_cmds = d.getVar("testimage_dump_host") | ||
111 | dump_dir = d.getVar("TESTIMAGE_DUMP_DIR") | 107 | dump_dir = d.getVar("TESTIMAGE_DUMP_DIR") |
112 | if not dump_dir: | 108 | if not dump_dir: |
113 | dump_dir = os.path.join(d.getVar('LOG_DIR'), 'runtime-hostdump') | 109 | dump_dir = os.path.join(d.getVar('LOG_DIR'), 'runtime-hostdump') |
@@ -131,6 +127,7 @@ class QemuTarget(BaseTarget): | |||
131 | logfile = self.qemulog, | 127 | logfile = self.qemulog, |
132 | kernel = self.kernel, | 128 | kernel = self.kernel, |
133 | boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")), | 129 | boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")), |
130 | tmpfsdir = d.getVar("RUNQEMU_TMPFS_DIR"), | ||
134 | logger = logger) | 131 | logger = logger) |
135 | else: | 132 | else: |
136 | self.runner = QemuRunner(machine=d.getVar("MACHINE"), | 133 | self.runner = QemuRunner(machine=d.getVar("MACHINE"), |
@@ -142,11 +139,13 @@ class QemuTarget(BaseTarget): | |||
142 | boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")), | 139 | boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")), |
143 | use_kvm = use_kvm, | 140 | use_kvm = use_kvm, |
144 | dump_dir = dump_dir, | 141 | dump_dir = dump_dir, |
145 | dump_host_cmds = d.getVar("testimage_dump_host"), | ||
146 | logger = logger, | 142 | logger = logger, |
143 | tmpfsdir = d.getVar("RUNQEMU_TMPFS_DIR"), | ||
147 | serial_ports = len(d.getVar("SERIAL_CONSOLES").split())) | 144 | serial_ports = len(d.getVar("SERIAL_CONSOLES").split())) |
148 | 145 | ||
149 | self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner) | 146 | self.monitor_dumper = MonitorDumper(dump_monitor_cmds, dump_dir, self.runner) |
147 | if (self.monitor_dumper): | ||
148 | self.monitor_dumper.create_dir("qmp") | ||
150 | 149 | ||
151 | def deploy(self): | 150 | def deploy(self): |
152 | bb.utils.mkdirhier(self.testdir) | 151 | bb.utils.mkdirhier(self.testdir) |
@@ -156,7 +155,7 @@ class QemuTarget(BaseTarget): | |||
156 | os.unlink(qemuloglink) | 155 | os.unlink(qemuloglink) |
157 | os.symlink(self.qemulog, qemuloglink) | 156 | os.symlink(self.qemulog, qemuloglink) |
158 | 157 | ||
159 | self.logger.info("rootfs file: %s" % self.rootfs) | 158 | self.logger.info("rootfs file: %s" % self.rootfs) |
160 | self.logger.info("Qemu log file: %s" % self.qemulog) | 159 | self.logger.info("Qemu log file: %s" % self.qemulog) |
161 | super(QemuTarget, self).deploy() | 160 | super(QemuTarget, self).deploy() |
162 | 161 | ||
@@ -198,7 +197,7 @@ class QemuTarget(BaseTarget): | |||
198 | self.server_ip = self.runner.server_ip | 197 | self.server_ip = self.runner.server_ip |
199 | self.connection = SSHControl(ip=self.ip, logfile=self.sshlog) | 198 | self.connection = SSHControl(ip=self.ip, logfile=self.sshlog) |
200 | else: | 199 | else: |
201 | raise RuntimError("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn) | 200 | raise RuntimeError("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn) |
202 | 201 | ||
203 | def run_serial(self, command, timeout=60): | 202 | def run_serial(self, command, timeout=60): |
204 | return self.runner.run_serial(command, timeout=timeout) | 203 | return self.runner.run_serial(command, timeout=timeout) |