public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
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.

      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