Hi Alex & Paul,
I had developed this selftest testcase to test qemu can boot nfs & ext4 and
finally shutdown for various qemu architecture.
Initially, I was thinking to develop this automated test as part of testimage
but as this test involve shutting down qemu, testimage testcases executed after
this will face lost connection to qemu. Furthermore, when I tried to add this
test to selftest runqemu.py, I realized runqemu was dedicated for
MACHINE=qemux86-64 and it was testing various live image (iso and hddimg) but
live image was not supported by other qemu architecture. Therefore, this test
was developed as independent selftest testcase.
Please let me know your inputs and feedback.
Thanks,
Yeoh Ee Peng
-Original Message-
From: openembedded-core-boun...@lists.openembedded.org
[mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of Yeoh Ee
Peng
Sent: Thursday, April 5, 2018 8:36 AM
To: openembedded-core@lists.openembedded.org
Subject: [OE-core] [PATCH] oe-selftest: qemutest: add tests for qemu boot and
shutdown
QA team were testing qemu boot image and shutdown on each qemu architecture
manually. Add automated test to test qemu boot on
ext4 and nfs, finally it can shutdown properly.
This tests was not included into existing runqemu.py as runqemu was dedicated
for qemux86-64 where it test various live image (iso and hddimg) can boot but
this live image was not supported on other qemu architechture.
Signed-off-by: Yeoh Ee Peng
---
meta/lib/oeqa/selftest/cases/qemutest.py | 44
1 file changed, 44 insertions(+)
create mode 100644 meta/lib/oeqa/selftest/cases/qemutest.py
diff --git a/meta/lib/oeqa/selftest/cases/qemutest.py
b/meta/lib/oeqa/selftest/cases/qemutest.py
new file mode 100644
index 000..f06e3fd
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/qemutest.py
@@ -0,0 +1,44 @@
+from oeqa.selftest.case import OESelftestTestCase from
+oeqa.utils.commands import bitbake, get_bb_var, runCmd, runqemu import
+os import tempfile
+
+class QemuTest(OESelftestTestCase):
+
+@classmethod
+def setUpClass(cls):
+super(QemuTest, cls).setUpClass()
+cls.recipe = 'core-image-minimal'
+cls.machine = get_bb_var('MACHINE')
+cls.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+cls.cmd_common = "runqemu nographic"
+cls.qemuboot_conf = "%s-%s.qemuboot.conf" % (cls.recipe, cls.machine)
+cls.qemuboot_conf = os.path.join(cls.deploy_dir_image,
cls.qemuboot_conf)
+result = bitbake(cls.recipe)
+
+def test_qemu_can_shutdown(self):
+if not os.path.exists(self.qemuboot_conf):
+self.skipTest("%s not found" % self.qemuboot_conf)
+cmd = "%s %s" % (self.cmd_common, self.qemuboot_conf)
+with runqemu(self.recipe, ssh=True, launch_cmd=cmd) as qemu:
+status, output = qemu.run("shutdown -h now")
+self.assertEqual(status, 0, 'Failed: qemu shutdown')
+
+def test_qemu_can_boot_nfs_and_shutdown(self):
+bitbake('meta-ide-support')
+rootfs_tar = "%s-%s.tar.bz2" % (self.recipe, self.machine)
+rootfs_tar = os.path.join(self.deploy_dir_image, rootfs_tar)
+if not os.path.exists(rootfs_tar):
+self.skipTest("%s not found" % rootfs_tar)
+tmpdir = tempfile.mkdtemp(prefix='qemu_nfs')
+tmpdir_nfs = os.path.join(tmpdir, 'nfs')
+cmd_extract_nfs = 'runqemu-extract-sdk %s %s' % (rootfs_tar,
tmpdir_nfs)
+runCmd(cmd_extract_nfs)
+if not os.path.exists(self.qemuboot_conf):
+self.skipTest("%s not found" % self.qemuboot_conf)
+cmd = "%s nfs %s %s" % (self.cmd_common, self.qemuboot_conf,
tmpdir_nfs)
+with runqemu(self.recipe, ssh=True, launch_cmd=cmd) as qemu:
+status, output = qemu.run("shutdown -h now")
+self.assertEqual(status, 0, 'Failed: qemu shutdown')
+runCmd('rm -rf %s' % tmpdir)
+
--
2.7.4
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core