diff options
Diffstat (limited to 'tests/qemu-iotests/common.rc')
-rw-r--r-- | tests/qemu-iotests/common.rc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index f574d22ea5..51c57dbfe0 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -78,7 +78,7 @@ _qemu_proc_exec() { local VALGRIND_LOGFILE="$1" shift - if [ "${VALGRIND_QEMU}" == "y" ]; then + if [[ "${VALGRIND_QEMU}" == "y" && "${NO_VALGRIND}" != "y" ]]; then exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 "$@" else exec "$@" @@ -89,7 +89,7 @@ _qemu_proc_valgrind_log() { local VALGRIND_LOGFILE="$1" local RETVAL="$2" - if [ "${VALGRIND_QEMU}" == "y" ]; then + if [[ "${VALGRIND_QEMU}" == "y" && "${NO_VALGRIND}" != "y" ]]; then if [ $RETVAL == 99 ]; then cat "${VALGRIND_LOGFILE}" fi @@ -169,6 +169,14 @@ _qemu_vxhs_wrapper() return $RETVAL } +# Valgrind bug #409141 https://bugs.kde.org/show_bug.cgi?id=409141 +# Until valgrind 3.16+ is ubiquitous, we must work around a hang in +# valgrind when issuing sigkill. Disable valgrind for this invocation. +_NO_VALGRIND() +{ + NO_VALGRIND="y" "$@" +} + export QEMU=_qemu_wrapper export QEMU_IMG=_qemu_img_wrapper export QEMU_IO=_qemu_io_wrapper |