qemu-iotests: extend the check script to prepare supporting valgrind for python tests
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>
This commit is contained in:
parent
e92ecc322c
commit
a9b4c6bb64
@ -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 '
|
||||
|
@ -96,6 +96,17 @@ except KeyError:
|
||||
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=' + \
|
||||
|
@ -298,6 +298,7 @@ TEST_DIR -- {TEST_DIR}
|
||||
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())
|
||||
|
Loading…
Reference in New Issue
Block a user