All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: Emanuele Giuseppe Esposito <eesposit@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>,
	Cleber Rosa <crosa@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, John Snow <jsnow@redhat.com>
Subject: Re: [PATCH v4 09/15] qemu-iotests: extend the check script to support valgrind for python tests
Date: Fri, 28 May 2021 20:24:51 +0300	[thread overview]
Message-ID: <1e81d521-803a-e11f-933e-b145432bf6c3@virtuozzo.com> (raw)
In-Reply-To: <20210520075236.44723-10-eesposit@redhat.com>

20.05.2021 10:52, Emanuele Giuseppe Esposito wrote:
> Currently, the check script only parses the option and sets the
> VALGRIND_QEMU environmental variable to "y".
> Add another local python variable that prepares the command line,
> identical to the one provided in the test scripts.
> 
> Because the python script does not know in advance the valgring
> PID to assign to the log file name, use the "%p" flag in valgrind
> log file name that automatically puts the process PID at runtime.
> 
> Reviewed-by: Max Reitz <mreitz@redhat.com>
> Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
> ---
>   tests/qemu-iotests/check      |  7 ++++---
>   tests/qemu-iotests/iotests.py | 11 +++++++++++
>   tests/qemu-iotests/testenv.py |  1 +
>   3 files changed, 16 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
> index b9820fdaaf..2101cedfe3 100755
> --- a/tests/qemu-iotests/check
> +++ b/tests/qemu-iotests/check
> @@ -36,6 +36,10 @@ def make_argparser() -> argparse.ArgumentParser:
>       p.add_argument('-gdb', action='store_true',
>                      help="start gdbserver with $GDB_OPTIONS options \
>                           ('localhost:12345' if $GDB_OPTIONS is empty)")
> +    p.add_argument('-valgrind', action='store_true',
> +                    help='use valgrind, sets VALGRIND_QEMU environment '
> +                    'variable')
> +
>       p.add_argument('-misalign', action='store_true',
>                      help='misalign memory allocations')
>       p.add_argument('--color', choices=['on', 'off', 'auto'],
> @@ -86,9 +90,6 @@ def make_argparser() -> argparse.ArgumentParser:
>       g_bash.add_argument('-o', dest='imgopts',
>                           help='options to pass to qemu-img create/convert, '
>                           'sets IMGOPTS environment variable')
> -    g_bash.add_argument('-valgrind', action='store_true',
> -                        help='use valgrind, sets VALGRIND_QEMU environment '
> -                        'variable')
>   
>       g_sel = p.add_argument_group('test selecting options',
>                                    'The following options specify test set '
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index c9628e6828..41462a80fc 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -97,6 +97,17 @@
>       sys.stderr.write('Please run this test via the "check" script\n')
>       sys.exit(os.EX_USAGE)
>   
> +qemu_valgrind = []
> +if os.environ.get('VALGRIND_QEMU') == "y" and \
> +    os.environ.get('NO_VALGRIND') != "y":
> +    valgrind_logfile = "--log-file=" + test_dir.strip()

a bit strange that you need to strip test_dir here.. Why?

> +    # %p allows to put the valgrind process PID, since
> +    # we don't know it a priori (subprocess.Popen is
> +    # not yet invoked)
> +    valgrind_logfile += "/%p.valgrind"
> +
> +    qemu_valgrind = ['valgrind', valgrind_logfile, '--error-exitcode=99']
> +
>   socket_scm_helper = os.environ.get('SOCKET_SCM_HELPER', 'socket_scm_helper')
>   
>   luks_default_secret_object = 'secret,id=keysec0,data=' + \
> diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py
> index 49ddd586ef..319d29cb0c 100644
> --- a/tests/qemu-iotests/testenv.py
> +++ b/tests/qemu-iotests/testenv.py
> @@ -282,6 +282,7 @@ def print_env(self) -> None:
>   SOCK_DIR      -- {SOCK_DIR}
>   SOCKET_SCM_HELPER -- {SOCKET_SCM_HELPER}
>   GDB_OPTIONS   -- {GDB_OPTIONS}
> +VALGRIND_QEMU -- {VALGRIND_QEMU}
>   """
>   
>           args = collections.defaultdict(str, self.get_env())
> 

commit subject sais "support valgrind", but actually we only add a variable. valgrind is not actually used yet.. I'd reflect it in commit subject somehow

-- 
Best regards,
Vladimir


  reply	other threads:[~2021-05-28 17:26 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-20  7:52 [PATCH v4 00/15] qemu_iotests: improve debugging options Emanuele Giuseppe Esposito
2021-05-20  7:52 ` [PATCH v4 01/15] python: qemu: add timer parameter for qmp.accept socket Emanuele Giuseppe Esposito
2021-05-26 11:13   ` Vladimir Sementsov-Ogievskiy
2021-06-02 23:23   ` John Snow
2021-06-03  8:06     ` Emanuele Giuseppe Esposito
2021-06-03 19:02       ` John Snow
2021-06-04  8:48         ` Emanuele Giuseppe Esposito
2021-05-20  7:52 ` [PATCH v4 02/15] python: qemu: pass the wrapper field from QEMUQtestmachine to QEMUMachine Emanuele Giuseppe Esposito
2021-05-26 11:16   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 03/15] docs/devel/testing: add debug section to the QEMU iotests chapter Emanuele Giuseppe Esposito
2021-05-26 11:18   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 04/15] qemu-iotests: add option to attach gdbserver Emanuele Giuseppe Esposito
2021-05-26 11:24   ` Vladimir Sementsov-Ogievskiy
2021-05-26 12:48     ` Paolo Bonzini
2021-05-26 13:25       ` Vladimir Sementsov-Ogievskiy
2021-05-26 17:23         ` Emanuele Giuseppe Esposito
2021-05-26 19:15   ` Vladimir Sementsov-Ogievskiy
2021-05-27 11:06     ` Emanuele Giuseppe Esposito
2021-05-27 12:17       ` Vladimir Sementsov-Ogievskiy
2021-05-28 16:26   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 05/15] qemu-iotests: delay QMP socket timers Emanuele Giuseppe Esposito
2021-05-28 17:06   ` Vladimir Sementsov-Ogievskiy
2021-06-03 11:03     ` Emanuele Giuseppe Esposito
2021-06-03 12:25       ` Vladimir Sementsov-Ogievskiy
2021-06-03 12:52         ` Emanuele Giuseppe Esposito
2021-05-20  7:52 ` [PATCH v4 06/15] qemu_iotests: insert gdbserver command line as wrapper for qemu binary Emanuele Giuseppe Esposito
2021-05-28 17:07   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 07/15] qemu-iotests: add gdbserver option to script tests too Emanuele Giuseppe Esposito
2021-05-28 17:09   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 08/15] docs/devel/testing: add -gdb option to the debugging section of QEMU iotests Emanuele Giuseppe Esposito
2021-05-28 17:16   ` Vladimir Sementsov-Ogievskiy
2021-05-28 20:31     ` Emanuele Giuseppe Esposito
2021-05-20  7:52 ` [PATCH v4 09/15] qemu-iotests: extend the check script to support valgrind for python tests Emanuele Giuseppe Esposito
2021-05-28 17:24   ` Vladimir Sementsov-Ogievskiy [this message]
2021-05-28 20:31     ` Emanuele Giuseppe Esposito
2021-05-20  7:52 ` [PATCH v4 10/15] qemu-iotests: extent QMP socket timeout when using valgrind Emanuele Giuseppe Esposito
2021-05-28 17:27   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 11/15] qemu-iotests: allow valgrind to read/delete the generated log file Emanuele Giuseppe Esposito
2021-05-28 17:39   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 12/15] qemu-iotests: insert valgrind command line as wrapper for qemu binary Emanuele Giuseppe Esposito
2021-05-28 17:41   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 13/15] docs/devel/testing: add -valgrind option to the debug section of QEMU iotests Emanuele Giuseppe Esposito
2021-05-28 17:42   ` Vladimir Sementsov-Ogievskiy
2021-05-20  7:52 ` [PATCH v4 14/15] qemu-iotests: add option to show qemu binary logs on stdout Emanuele Giuseppe Esposito
2021-05-28 17:52   ` Vladimir Sementsov-Ogievskiy
2021-05-28 20:32     ` Emanuele Giuseppe Esposito
2021-05-20  7:52 ` [PATCH v4 15/15] docs/devel/testing: add -p option to the debug section of QEMU iotests Emanuele Giuseppe Esposito
2021-05-28 17:53   ` Vladimir Sementsov-Ogievskiy
2021-05-26 11:32 ` [PATCH v4 00/15] qemu_iotests: improve debugging options Vladimir Sementsov-Ogievskiy
2021-05-26 17:18   ` Emanuele Giuseppe Esposito

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=1e81d521-803a-e11f-933e-b145432bf6c3@virtuozzo.com \
    --to=vsementsov@virtuozzo.com \
    --cc=crosa@redhat.com \
    --cc=eesposit@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.