From: Anton Mikanovich <amikan@ilbers.de>
To: Uladzimir Bely <ubely@ilbers.de>, isar-users@googlegroups.com
Subject: Re: [PATCH] testsuite: cleanup qemu machines left running
Date: Fri, 23 Aug 2024 12:30:53 +0300 [thread overview]
Message-ID: <96485acc-9cb8-4e32-a6ef-bece3c1f53fa@ilbers.de> (raw)
In-Reply-To: <20240823052706.25962-1-ubely@ilbers.de>
23/08/2024 08:26, Uladzimir Bely wrote:
> Parameter "keep=True" in `vm_start` function allows to share the same
> qemu process between different tests.
>
> In case the machine is forgotten to be closed by the last test or in
> case avocado skips some tests (due to internal error or other reason)
> such qemu processes stay running after the testsuite completed.
>
> This change allows to terminate these processes.
>
> Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
> ---
> scripts/ci_build.sh | 5 ++++-
> testsuite/cleanup.py | 26 ++++++++++++++++++++++++++
> 2 files changed, 30 insertions(+), 1 deletion(-)
> create mode 100755 testsuite/cleanup.py
>
> diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh
> index 0aa2403d..b643b5a6 100755
> --- a/scripts/ci_build.sh
> +++ b/scripts/ci_build.sh
> @@ -147,4 +147,7 @@ set -x
>
> avocado ${VERBOSE} run "${TESTSUITE_DIR}/citest.py" \
> -t "${TAGS}" --max-parallel-tasks=1 --disable-sysinfo \
> - ${SSTATE} ${TIMEOUT}
> + ${SSTATE} ${TIMEOUT} \
> + || true
Why not just 'set +e' before avocado call?
> +
> +python3 ${TESTSUITE_DIR}/cleanup.py
> diff --git a/testsuite/cleanup.py b/testsuite/cleanup.py
> new file mode 100755
> index 00000000..c81397d2
> --- /dev/null
> +++ b/testsuite/cleanup.py
> @@ -0,0 +1,26 @@
> +#!/usr/bin/env python3
> +
> +import os
> +import pickle
> +import signal
> +
> +build_dir = os.path.join(os.path.dirname(__file__), '..', 'build')
> +
> +vm_dict_file = f"{build_dir}/vm_dict_file"
> +vm_dict = {}
> +
> +if os.path.isfile(vm_dict_file):
> + with open(vm_dict_file, 'rb') as f:
> + data = f.read()
> + if data:
> + vm_dict = pickle.loads(data)
> +
> +for vm in vm_dict:
> + pid = vm_dict[vm][0]
> + name = vm_dict[vm][1][0]
> + print(f"Killing {name} process with pid {pid}", end ="... ")
> + try:
> + os.kill(pid, signal.SIGKILL)
> + print("OK")
> + except ProcessLookupError:
> + print("Not found")
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/isar-users/96485acc-9cb8-4e32-a6ef-bece3c1f53fa%40ilbers.de.
prev parent reply other threads:[~2024-08-23 9:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-23 5:26 Uladzimir Bely
2024-08-23 9:30 ` Anton Mikanovich [this message]
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=96485acc-9cb8-4e32-a6ef-bece3c1f53fa@ilbers.de \
--to=amikan@ilbers.de \
--cc=isar-users@googlegroups.com \
--cc=ubely@ilbers.de \
/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