qemu-iotests: Valgrind support

check -valgrind wraps all qemu-io calls with valgrind. This makes it a
bit easier to debug problems that occur somewhere deep in a test case.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Kevin Wolf 2012-06-28 16:55:54 +02:00
parent 3f4349dc8b
commit 2f24e8fb8d
2 changed files with 21 additions and 0 deletions

View File

@ -41,6 +41,7 @@ sortme=false
expunge=true
have_test_arg=false
randomize=false
valgrind=false
rm -f $tmp.list $tmp.tmp $tmp.sed
export IMGFMT=raw
@ -212,6 +213,11 @@ testlist options
xpand=false
;;
-valgrind)
valgrind=true
xpand=false
;;
-g) # -g group ... pick from group file
group=true
xpand=false
@ -345,3 +351,8 @@ fi
[ "$QEMU" = "" ] && _fatal "qemu not found"
[ "$QEMU_IMG" = "" ] && _fatal "qemu-img not found"
[ "$QEMU_IO" = "" ] && _fatal "qemu-img not found"
if $valgrind; then
export REAL_QEMU_IO="$QEMU_IO_PROG"
export QEMU_IO_PROG=valgrind_qemu_io
fi

View File

@ -53,6 +53,16 @@ else
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
fi
function valgrind_qemu_io()
{
valgrind --log-file=/tmp/$$.valgrind --error-exitcode=99 $REAL_QEMU_IO "$@"
if [ $? != 0 ]; then
cat /tmp/$$.valgrind
fi
rm -f /tmp/$$.valgrind
}
_optstr_add()
{
if [ -n "$1" ]; then