[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/56] qemu-iotests: extend the check script to prepare supporting
From: |
Hanna Reitz |
Subject: |
[PULL 10/56] qemu-iotests: extend the check script to prepare supporting valgrind for python tests |
Date: |
Wed, 1 Sep 2021 17:15:33 +0200 |
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
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 valgrind
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.
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210809090114.64834-11-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@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 4365bb8066..ebd27946db 100755
--- a/tests/qemu-iotests/check
+++ b/tests/qemu-iotests/check
@@ -39,6 +39,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'],
@@ -88,9 +92,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 e7e3d92d3e..6aa1dc48ba 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -96,6 +96,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
+ # %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 8501c6caf5..8bf154376f 100644
--- a/tests/qemu-iotests/testenv.py
+++ b/tests/qemu-iotests/testenv.py
@@ -298,6 +298,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())
--
2.31.1
- [PULL 00/56] Block patches, Hanna Reitz, 2021/09/01
- [PULL 01/56] python: qemu: add timer parameter for qmp.accept socket, Hanna Reitz, 2021/09/01
- [PULL 03/56] python: qemu: pass the wrapper field from QEMUQtestmachine to QEMUMachine, Hanna Reitz, 2021/09/01
- [PULL 02/56] python: Reduce strictness of pylint's duplicate-code check, Hanna Reitz, 2021/09/01
- [PULL 05/56] qemu-iotests: add option to attach gdbserver, Hanna Reitz, 2021/09/01
- [PULL 04/56] docs/devel/testing: add debug section to the QEMU iotests chapter, Hanna Reitz, 2021/09/01
- [PULL 06/56] qemu-iotests: delay QMP socket timers, Hanna Reitz, 2021/09/01
- [PULL 08/56] qemu-iotests: add gdbserver option to script tests too, Hanna Reitz, 2021/09/01
- [PULL 07/56] qemu_iotests: insert gdbserver command line as wrapper for qemu binary, Hanna Reitz, 2021/09/01
- [PULL 10/56] qemu-iotests: extend the check script to prepare supporting valgrind for python tests,
Hanna Reitz <=
- [PULL 11/56] qemu-iotests: extend QMP socket timeout when using valgrind, Hanna Reitz, 2021/09/01
- [PULL 09/56] docs/devel/testing: add -gdb option to the debugging section of QEMU iotests, Hanna Reitz, 2021/09/01
- [PULL 12/56] qemu-iotests: allow valgrind to read/delete the generated log file, Hanna Reitz, 2021/09/01
- [PULL 13/56] qemu-iotests: insert valgrind command line as wrapper for qemu binary, Hanna Reitz, 2021/09/01
- [PULL 14/56] docs/devel/testing: add -valgrind option to the debug section of QEMU iotests, Hanna Reitz, 2021/09/01
- [PULL 16/56] docs/devel/testing: add -p option to the debug section of QEMU iotests, Hanna Reitz, 2021/09/01
- [PULL 17/56] block/monitor: Consolidate hmp_handle_error calls to reduce redundant code, Hanna Reitz, 2021/09/01
- [PULL 18/56] raw-format: drop WRITE and RESIZE child perms when possible, Hanna Reitz, 2021/09/01
- [PULL 15/56] qemu-iotests: add option to show qemu binary logs on stdout, Hanna Reitz, 2021/09/01
- [PULL 19/56] iotests: use with-statement for open() calls, Hanna Reitz, 2021/09/01