summaryrefslogtreecommitdiffstats
path: root/external/meta-updater/lib/oeqa/selftest/cases/updater_qemux86_64_ptest.py
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-updater/lib/oeqa/selftest/cases/updater_qemux86_64_ptest.py')
-rw-r--r--external/meta-updater/lib/oeqa/selftest/cases/updater_qemux86_64_ptest.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/external/meta-updater/lib/oeqa/selftest/cases/updater_qemux86_64_ptest.py b/external/meta-updater/lib/oeqa/selftest/cases/updater_qemux86_64_ptest.py
new file mode 100644
index 00000000..d20a9f0e
--- /dev/null
+++ b/external/meta-updater/lib/oeqa/selftest/cases/updater_qemux86_64_ptest.py
@@ -0,0 +1,47 @@
+# pylint: disable=C0111,C0325
+import re
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd
+from testutils import metadir, qemu_launch, qemu_send_command, qemu_terminate
+
+
+class PtestTests(OESelftestTestCase):
+
+ def setUpLocal(self):
+ layer = "meta-updater-qemux86-64"
+ result = runCmd('bitbake-layers show-layers')
+ if re.search(layer, result.output) is None:
+ self.meta_qemu = metadir() + layer
+ runCmd('bitbake-layers add-layer "%s"' % self.meta_qemu)
+ else:
+ self.meta_qemu = None
+ self.append_config('MACHINE = "qemux86-64"')
+ self.append_config('SYSTEMD_AUTO_ENABLE_aktualizr = "disable"')
+ self.append_config('PTEST_ENABLED_pn-aktualizr = "1"')
+ self.append_config('IMAGE_INSTALL_append += "aktualizr-ptest ptest-runner "')
+ self.append_config('IMAGE_FSTYPES_remove = "ostreepush garagesign garagecheck"')
+ self.qemu, self.s = qemu_launch(machine='qemux86-64', mem="768M")
+
+ def tearDownLocal(self):
+ qemu_terminate(self.s)
+ if self.meta_qemu:
+ runCmd('bitbake-layers remove-layer "%s"' % self.meta_qemu, ignore_status=True)
+
+ def qemu_command(self, command, timeout=60):
+ return qemu_send_command(self.qemu.ssh_port, command, timeout=timeout)
+
+ def test_run_ptests(self):
+ # simulate a login shell, so that /usr/sbin is in $PATH (from /etc/profile)
+ stdout, stderr, retcode = self.qemu_command('sh -l -c ptest-runner', timeout=None)
+ output = stdout.decode()
+ print(output)
+
+ has_failure = re.search('^FAIL', output, flags=re.MULTILINE) is not None
+ if has_failure:
+ print("Full test suite log:")
+ stdout, _, _ = self.qemu_command('cat /tmp/aktualizr-ptest.log || cat /tmp/aktualizr-ptest.log.tmp', timeout=None)
+ print(stdout.decode(errors='replace'))
+
+ self.assertEqual(retcode, 0)
+ self.assertFalse(has_failure)