From: Anton Mikanovich <amikan@ilbers.de>
To: isar-users@googlegroups.com
Cc: Anton Mikanovich <amikan@ilbers.de>
Subject: [PATCH 10/23] CI: Fix errors reporting during startvm
Date: Mon, 25 Mar 2024 17:55:27 +0200 [thread overview]
Message-ID: <20240325155540.4162990-11-amikan@ilbers.de> (raw)
In-Reply-To: <20240325155540.4162990-1-amikan@ilbers.de>
Test case failure should be triggered by self.fail() API.
It helps to prepare much more correct log output.
So rebuild error handling of startvm related functions.
Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
testsuite/cibuilder.py | 35 +++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py
index fa30c2f5..d282f8ee 100755
--- a/testsuite/cibuilder.py
+++ b/testsuite/cibuilder.py
@@ -475,7 +475,7 @@ BBPATH .= ":${LAYERDIR}"\
p1 = subprocess.Popen('exec ' + ' '.join(cmdline), shell=True,
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=True)
- self.log.info("Started VM with pid %s" % (p1.pid))
+ self.log.info("Starting VM with pid %s" % (p1.pid))
return p1, cmdline, boot_log
@@ -506,8 +506,10 @@ BBPATH .= ":${LAYERDIR}"\
if fd == p1.stderr.fileno():
app_log.error(p1.stderr.readline().rstrip())
- self.log.error("Didn't get login prompt")
- return 1
+ rc = 1
+ if time.time() > timeout:
+ rc = 2
+ return rc
def vm_parse_output(self, boot_log, multiconfig, skip_modulecheck):
@@ -539,10 +541,8 @@ BBPATH .= ":${LAYERDIR}"\
if (module_output in data or skip_modulecheck):
if resize_output and not resize_output in data:
rc = 1
- self.log.error("No resize output while expected")
else:
rc = 2
- self.log.error("No example module output while expected")
return rc
@@ -553,13 +553,16 @@ BBPATH .= ":${LAYERDIR}"\
def vm_turn_off(self, vm):
- pid = self.vm_dict[vm][0]
- os.kill(pid, signal.SIGKILL)
+ try:
+ pid = self.vm_dict[vm][0]
+ os.kill(pid, signal.SIGKILL)
- del(self.vm_dict[vm])
- self.vm_dump_dict(vm)
+ del(self.vm_dict[vm])
+ self.vm_dump_dict(vm)
- self.log.info("Stopped VM with pid %s" % (pid))
+ self.log.info("Stopped VM with pid %s" % (pid))
+ except ProcessLookupError:
+ self.log.error("Can't stop VM %s" % vm)
def vm_start(self, arch='amd64', distro='buster',
@@ -611,7 +614,10 @@ BBPATH .= ":${LAYERDIR}"\
rc = self.vm_wait_boot(p1, timeout)
if rc != 0:
self.vm_turn_off(vm)
- self.fail('Failed to boot qemu machine')
+ if rc == 2:
+ self.fail("Didn't get login prompt")
+ else:
+ self.fail('Failed to boot qemu machine')
if cmd is not None or script is not None:
self.ssh_user='ci'
@@ -638,7 +644,12 @@ BBPATH .= ":${LAYERDIR}"\
if rc != 0:
if not keep:
self.vm_turn_off(vm)
- self.fail('Failed to parse output')
+ if rc == 1:
+ self.fail("No resize output while expected")
+ elif rc == 2:
+ self.fail("No example module output while expected")
+ else:
+ self.fail('Failed to parse output')
if not keep:
self.vm_turn_off(vm)
--
2.34.1
next prev parent reply other threads:[~2024-03-25 15:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-25 15:55 [PATCH 00/23] Additional CI improvements Anton Mikanovich
2024-03-25 15:55 ` [PATCH 01/23] CI: Introduce Standard CI for cross building Anton Mikanovich
2024-03-25 15:55 ` [PATCH 02/23] CI: Rename cross to fast Anton Mikanovich
2024-03-25 15:55 ` [PATCH 03/23] CI: Rename nocross to full Anton Mikanovich
2024-03-25 15:55 ` [PATCH 04/23] CI: Remove test keyword from class names Anton Mikanovich
2024-03-25 15:55 ` [PATCH 05/23] CI: Rename base test cases Anton Mikanovich
2024-03-25 15:55 ` [PATCH 06/23] CI: Remove cleanup before nocross build Anton Mikanovich
2024-03-25 15:55 ` [PATCH 07/23] CI: Update default target to bookworm Anton Mikanovich
2024-03-25 15:55 ` [PATCH 08/23] CI: Remove duplicated targets Anton Mikanovich
2024-03-25 15:55 ` [PATCH 09/23] CI: Run startvm for all qemu targets Anton Mikanovich
2024-03-25 15:55 ` Anton Mikanovich [this message]
2024-03-25 15:55 ` [PATCH 11/23] CI: Remove logging hack for job.log Anton Mikanovich
2024-03-25 15:55 ` [PATCH 12/23] CI: Do not lost errors on failed processes Anton Mikanovich
2024-03-25 15:55 ` [PATCH 13/23] CI: Remove container package list hack from testsuite Anton Mikanovich
2024-03-25 15:55 ` [PATCH 14/23] CI: Minimize debsrc_cache checking Anton Mikanovich
2024-03-25 15:55 ` [PATCH 15/23] CI: Minimize kselftest checking Anton Mikanovich
2024-03-25 15:55 ` [PATCH 16/23] CI: Do not include testsuites into each other Anton Mikanovich
2024-03-25 15:55 ` [PATCH 17/23] CI: Mark some single testcases with tags Anton Mikanovich
2024-03-25 15:55 ` [PATCH 18/23] CI: Execute startvm testcases after building Anton Mikanovich
2024-03-25 15:55 ` [PATCH 19/23] CI: Fix missing endline in generated config Anton Mikanovich
2024-03-25 15:55 ` [PATCH 20/23] CI: Remove absolute path to citest.py Anton Mikanovich
2024-03-25 15:55 ` [PATCH 21/23] CI: Create avocado.conf inside build_dir Anton Mikanovich
2024-03-25 15:55 ` [PATCH 22/23] CI: Set also cache dir for Avocado Anton Mikanovich
2024-03-25 15:55 ` [PATCH 23/23] CI: Add make world test case Anton Mikanovich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240325155540.4162990-11-amikan@ilbers.de \
--to=amikan@ilbers.de \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox