Skip to contentSkip to conversation

oeqa: Use snapshot instead of copying the rootfs image

PATCH New Richard Purdie 1 participant 1 message Sep 6, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 oeqa: Use snapshot instead of copying the rootfs image

Rather than copying images, use the snapshot option to qemu. This fixes a regression caused by the recent runqemu changes where the wrong images were being testes since the image is copied without the qemuboot.conf file. This means the latest image is found by runqemu rather than the specified one, leading to various confused testing results.

It could be fixed by copying more files but use snapshot mode instead.

meta/lib/oeqa/targetcontrol.py +0 -0
index 3209ef0..24669f4 100644
@@ -119,8 +119,7 @@ class QemuTarget(BaseTarget):


         self.image_fstype = self.get_image_fstype(d)
         self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime)
-        self.origrootfs = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True),  d.getVar("IMAGE_LINK_NAME", True) + '.' + self.image_fstype) -        self.rootfs = os.path.join(self.testdir, d.getVar("IMAGE_LINK_NAME", True) + '-testimage.' + self.image_fstype)
+        self.rootfs = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True),  d.getVar("IMAGE_LINK_NAME", True) + '.' + self.image_fstype) self.kernel = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True), d.getVar("KERNEL_IMAGETYPE", False) + '-' + d.getVar('MACHINE', False) + '.bin') dump_target_cmds = d.getVar("testimage_dump_target", True)
         dump_host_cmds = d.getVar("testimage_dump_host", True)
@@ -166,11 +165,7 @@ class QemuTarget(BaseTarget):
         self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner)

     def deploy(self):
-        try:
-            bb.utils.mkdirhier(self.testdir)
-            shutil.copyfile(self.origrootfs, self.rootfs)
-        except Exception as e:
-            bb.fatal("Error copying rootfs: %s" % e)
+        bb.utils.mkdirhier(self.testdir)

         qemuloglink = os.path.join(self.testdir, "qemu_boot_log")
         if os.path.islink(qemuloglink):

meta/lib/oeqa/utils/qemurunner.py +0 -0
index 2158d69..9783ff8 100644
@@ -134,7 +134,7 @@ class QemuRunner:

         self.origchldhandler = signal.getsignal(signal.SIGCHLD) signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
-        launch_cmd = 'runqemu '
+        launch_cmd = 'runqemu snapshot '
         if self.use_kvm:
             logger.info('Using kvm for runqemu') launch_cmd += 'kvm '