diff options
author | Jeff Cody <jcody@redhat.com> | 2015-10-30 15:25:18 -0400 |
---|---|---|
committer | Max Reitz <mreitz@redhat.com> | 2015-11-11 16:55:28 +0100 |
commit | e6c17669eb0868013d9a17050d8eb2d598f06067 (patch) | |
tree | 5dcf4350cc687adc9997bd1c85a714733c0a0c95 /tests/qemu-iotests/common.config | |
parent | f6c8c2e055f88e8ed74ac0c185fc9fbca1e1b775 (diff) |
qemu-iotests: fix -valgrind option for check
Commit 934659c switched the iotests to run qemu-io from a bash subshell,
in order to catch segfaults. This method is incompatible with the
current valgrind_qemu_io() bash function.
Move the valgrind usage into the exec subshell in _qemu_io_wrapper(),
while making sure the original return value is passed back to the
caller.
Update test output for tests 039, 061, and 137 as it looks for the
specific subshell command when the process is terminated.
Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
Message-id: 0066fd85d26ca641a1c25135ff2479b7985701cf.1446232490.git.jcody@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'tests/qemu-iotests/common.config')
-rw-r--r-- | tests/qemu-iotests/common.config | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config index be99730bb4..3ed51b8baa 100644 --- a/tests/qemu-iotests/common.config +++ b/tests/qemu-iotests/common.config @@ -122,7 +122,23 @@ _qemu_img_wrapper() _qemu_io_wrapper() { - (exec "$QEMU_IO_PROG" $QEMU_IO_OPTIONS "$@") + local VALGRIND_LOGFILE=/tmp/$$.valgrind + local RETVAL + ( + if [ "${VALGRIND_QEMU}" == "y" ]; then + exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 "$QEMU_IO_PROG" $QEMU_IO_OPTIONS "$@" + else + exec "$QEMU_IO_PROG" $QEMU_IO_OPTIONS "$@" + fi + ) + RETVAL=$? + if [ "${VALGRIND_QEMU}" == "y" ]; then + if [ $RETVAL == 99 ]; then + cat "${VALGRIND_LOGFILE}" + fi + rm -f "${VALGRIND_LOGFILE}" + fi + (exit $RETVAL) } _qemu_nbd_wrapper() |