diff options
author | Kevin Wolf <kwolf@redhat.com> | 2012-06-28 16:55:54 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2012-07-17 16:48:32 +0200 |
commit | 2f24e8fb8d684f576f3dcced820860d70652a7f9 (patch) | |
tree | 3b643eee61034d6b1b1e9bee5617f1adc976009b | |
parent | 3f4349dc8b9494315f8331b2ea4e8d1f83fb801d (diff) |
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>
-rw-r--r-- | tests/qemu-iotests/common | 11 | ||||
-rw-r--r-- | tests/qemu-iotests/common.rc | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common index eeb70cbcdc..1f6fdf5c56 100644 --- a/tests/qemu-iotests/common +++ b/tests/qemu-iotests/common @@ -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 diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index e535874e4c..5e3a524bc8 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -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 |