From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrADc-0007qM-2w for qemu-devel@nongnu.org; Tue, 17 Jul 2012 12:01:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SrADW-00064V-1g for qemu-devel@nongnu.org; Tue, 17 Jul 2012 12:01:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46085) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrADV-00064B-HY for qemu-devel@nongnu.org; Tue, 17 Jul 2012 12:01:41 -0400 From: Kevin Wolf Date: Tue, 17 Jul 2012 18:00:35 +0200 Message-Id: <1342540838-9027-39-git-send-email-kwolf@redhat.com> In-Reply-To: <1342540838-9027-1-git-send-email-kwolf@redhat.com> References: <1342540838-9027-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 38/41] qemu-iotests: Valgrind support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@codemonkey.ws Cc: kwolf@redhat.com, qemu-devel@nongnu.org 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 Reviewed-by: Paolo Bonzini --- tests/qemu-iotests/common | 11 +++++++++++ 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 eeb70cb..1f6fdf5 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 e535874..5e3a524 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 -- 1.7.6.5