yeahuh / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone
76daa3
From e37c3c50e638d5f628d658b36e41c3310f2ba505 Mon Sep 17 00:00:00 2001
76daa3
From: Jeffrey Cody <jcody@redhat.com>
76daa3
Date: Mon, 8 May 2017 22:11:14 +0200
76daa3
Subject: [PATCH 4/7] block/vxhs.c: Add qemu-iotests for new block device type
76daa3
 "vxhs"
76daa3
76daa3
RH-Author: Jeffrey Cody <jcody@redhat.com>
76daa3
Message-id: <3384a73672d5f90523c0ed394b332e82ec760d45.1494281291.git.jcody@redhat.com>
76daa3
Patchwork-id: 75047
76daa3
O-Subject: [RHEV-7.4 qemu-kvm-rhev 2/4] block/vxhs.c: Add qemu-iotests for new block device type "vxhs"
76daa3
Bugzilla: 1265869
76daa3
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
76daa3
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
76daa3
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
76daa3
76daa3
From: Ashish Mittal <ashmit602@gmail.com>
76daa3
76daa3
These changes use a vxhs test server that is a part of the following
76daa3
repository:
76daa3
https://github.com/VeritasHyperScale/libqnio.git
76daa3
76daa3
Signed-off-by: Ashish Mittal <Ashish.Mittal@veritas.com>
76daa3
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
76daa3
Reviewed-by: Jeff Cody <jcody@redhat.com>
76daa3
Signed-off-by: Jeff Cody <jcody@redhat.com>
76daa3
Message-id: 1491277689-24949-3-git-send-email-Ashish.Mittal@veritas.com
76daa3
(cherry picked from commit ae0c0a3decabba6b710d8e6902d43495f7490de2)
76daa3
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
76daa3
---
76daa3
 tests/qemu-iotests/common        |  6 ++++++
76daa3
 tests/qemu-iotests/common.config | 13 +++++++++++++
76daa3
 tests/qemu-iotests/common.filter |  1 +
76daa3
 tests/qemu-iotests/common.rc     | 19 +++++++++++++++++++
76daa3
 4 files changed, 39 insertions(+)
76daa3
76daa3
diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common
76daa3
index 4d5650d..9c6f972 100644
76daa3
--- a/tests/qemu-iotests/common
76daa3
+++ b/tests/qemu-iotests/common
76daa3
@@ -157,6 +157,7 @@ check options
76daa3
     -ssh                test ssh
76daa3
     -nfs                test nfs
76daa3
     -luks               test luks
76daa3
+    -vxhs               test vxhs
76daa3
     -xdiff              graphical mode diff
76daa3
     -nocache            use O_DIRECT on backing file
76daa3
     -misalign           misalign memory allocations
76daa3
@@ -260,6 +261,11 @@ testlist options
76daa3
             xpand=false
76daa3
             ;;
76daa3
 
76daa3
+        -vxhs)
76daa3
+            IMGPROTO=vxhs
76daa3
+            xpand=false
76daa3
+            ;;
76daa3
+
76daa3
         -ssh)
76daa3
             IMGPROTO=ssh
76daa3
             xpand=false
76daa3
diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config
76daa3
index 55527aa..c4b51b3 100644
76daa3
--- a/tests/qemu-iotests/common.config
76daa3
+++ b/tests/qemu-iotests/common.config
76daa3
@@ -105,6 +105,10 @@ if [ -z "$QEMU_NBD_PROG" ]; then
76daa3
     export QEMU_NBD_PROG="`set_prog_path qemu-nbd`"
76daa3
 fi
76daa3
 
76daa3
+if [ -z "$QEMU_VXHS_PROG" ]; then
76daa3
+    export QEMU_VXHS_PROG="`set_prog_path qnio_server`"
76daa3
+fi
76daa3
+
76daa3
 _qemu_wrapper()
76daa3
 {
76daa3
     (
76daa3
@@ -156,10 +160,19 @@ _qemu_nbd_wrapper()
76daa3
     )
76daa3
 }
76daa3
 
76daa3
+_qemu_vxhs_wrapper()
76daa3
+{
76daa3
+    (
76daa3
+        echo $BASHPID > "${TEST_DIR}/qemu-vxhs.pid"
76daa3
+        exec "$QEMU_VXHS_PROG" $QEMU_VXHS_OPTIONS "$@"
76daa3
+    )
76daa3
+}
76daa3
+
76daa3
 export QEMU=_qemu_wrapper
76daa3
 export QEMU_IMG=_qemu_img_wrapper
76daa3
 export QEMU_IO=_qemu_io_wrapper
76daa3
 export QEMU_NBD=_qemu_nbd_wrapper
76daa3
+export QEMU_VXHS=_qemu_vxhs_wrapper
76daa3
 
76daa3
 QEMU_IMG_EXTRA_ARGS=
76daa3
 if [ "$IMGOPTSSYNTAX" = "true" ]; then
76daa3
diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter
76daa3
index 1040013..c9a2d5c 100644
76daa3
--- a/tests/qemu-iotests/common.filter
76daa3
+++ b/tests/qemu-iotests/common.filter
76daa3
@@ -122,6 +122,7 @@ _filter_img_info()
76daa3
         -e "s#$TEST_DIR#TEST_DIR#g" \
76daa3
         -e "s#$IMGFMT#IMGFMT#g" \
76daa3
         -e 's#nbd://127.0.0.1:10810$#TEST_DIR/t.IMGFMT#g' \
76daa3
+        -e 's#json.*vdisk-id.*vxhs"}}#TEST_DIR/t.IMGFMT#' \
76daa3
         -e "/encrypted: yes/d" \
76daa3
         -e "/cluster_size: [0-9]\\+/d" \
76daa3
         -e "/table_size: [0-9]\\+/d" \
76daa3
diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
76daa3
index 7d4781d..62529ee 100644
76daa3
--- a/tests/qemu-iotests/common.rc
76daa3
+++ b/tests/qemu-iotests/common.rc
76daa3
@@ -85,6 +85,9 @@ else
76daa3
     elif [ "$IMGPROTO" = "nfs" ]; then
76daa3
         TEST_DIR="nfs://127.0.0.1/$TEST_DIR"
76daa3
         TEST_IMG=$TEST_DIR/t.$IMGFMT
76daa3
+    elif [ "$IMGPROTO" = "vxhs" ]; then
76daa3
+        TEST_IMG_FILE=$TEST_DIR/t.$IMGFMT
76daa3
+        TEST_IMG="vxhs://127.0.0.1:9999/t.$IMGFMT"
76daa3
     else
76daa3
         TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
76daa3
     fi
76daa3
@@ -171,6 +174,12 @@ _make_test_img()
76daa3
         eval "$QEMU_NBD -v -t -b 127.0.0.1 -p 10810 -f $IMGFMT  $TEST_IMG_FILE >/dev/null &"
76daa3
         sleep 1 # FIXME: qemu-nbd needs to be listening before we continue
76daa3
     fi
76daa3
+
76daa3
+    # Start QNIO server on image directory for vxhs protocol
76daa3
+    if [ $IMGPROTO = "vxhs" ]; then
76daa3
+        eval "$QEMU_VXHS -d  $TEST_DIR > /dev/null &"
76daa3
+        sleep 1 # Wait for server to come up.
76daa3
+    fi
76daa3
 }
76daa3
 
76daa3
 _rm_test_img()
76daa3
@@ -197,6 +206,16 @@ _cleanup_test_img()
76daa3
             fi
76daa3
             rm -f "$TEST_IMG_FILE"
76daa3
             ;;
76daa3
+        vxhs)
76daa3
+            if [ -f "${TEST_DIR}/qemu-vxhs.pid" ]; then
76daa3
+                local QEMU_VXHS_PID
76daa3
+                read QEMU_VXHS_PID < "${TEST_DIR}/qemu-vxhs.pid"
76daa3
+                kill ${QEMU_VXHS_PID} >/dev/null 2>&1
76daa3
+                rm -f "${TEST_DIR}/qemu-vxhs.pid"
76daa3
+            fi
76daa3
+            rm -f "$TEST_IMG_FILE"
76daa3
+            ;;
76daa3
+
76daa3
         file)
76daa3
             _rm_test_img "$TEST_DIR/t.$IMGFMT"
76daa3
             _rm_test_img "$TEST_DIR/t.$IMGFMT.orig"
76daa3
-- 
76daa3
1.8.3.1
76daa3