diff options
author | MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> | 2011-01-18 02:01:17 +0900 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2011-02-04 10:57:40 -0700 |
commit | 0a55cd61948190aa23b904102cee56f31754051a (patch) | |
tree | 22f3bb997dc2e7e3765f094d6e0d55584eb686a4 | |
parent | 1b270af788cf387c81f35f553148e0ae0596b260 (diff) | |
download | qemu-iotests-0a55cd61948190aa23b904102cee56f31754051a.tar.gz |
add support for rbd and sheepdog protocols
This patch introduces tests for protocols other than file, and
initially supports rbd and sheepdog.
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Christoph Hellwig <hch@lst.de>
-rwxr-xr-x | 001 | 1 | ||||
-rwxr-xr-x | 002 | 1 | ||||
-rwxr-xr-x | 003 | 1 | ||||
-rwxr-xr-x | 004 | 1 | ||||
-rwxr-xr-x | 005 | 6 | ||||
-rwxr-xr-x | 006 | 1 | ||||
-rwxr-xr-x | 007 | 1 | ||||
-rwxr-xr-x | 008 | 1 | ||||
-rwxr-xr-x | 009 | 1 | ||||
-rwxr-xr-x | 010 | 1 | ||||
-rwxr-xr-x | 011 | 1 | ||||
-rwxr-xr-x | 012 | 1 | ||||
-rwxr-xr-x | 013 | 1 | ||||
-rwxr-xr-x | 014 | 1 | ||||
-rwxr-xr-x | 015 | 1 | ||||
-rwxr-xr-x | 016 | 1 | ||||
-rwxr-xr-x | 017 | 1 | ||||
-rwxr-xr-x | 018 | 1 | ||||
-rwxr-xr-x | 019 | 1 | ||||
-rwxr-xr-x | 020 | 1 | ||||
-rwxr-xr-x | 021 | 1 | ||||
-rwxr-xr-x | 022 | 1 | ||||
-rwxr-xr-x | 023 | 1 | ||||
-rwxr-xr-x | 024 | 1 | ||||
-rwxr-xr-x | 025 | 1 | ||||
-rwxr-xr-x | 026 | 1 | ||||
-rwxr-xr-x | 027 | 1 | ||||
-rwxr-xr-x | 028 | 1 | ||||
-rwxr-xr-x | check | 2 | ||||
-rw-r--r-- | common | 13 | ||||
-rw-r--r-- | common.rc | 45 |
31 files changed, 89 insertions, 4 deletions
@@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux size=128M @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -42,6 +42,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux # vpc is limited to 127GB, so we can't test it here @@ -49,6 +50,11 @@ if [ "$IMGFMT" = "vpc" ]; then _notrun "image format $IMGFMT does not support large image sizes" fi +# sheepdog image is limited to 4TB, so we can't test it here +if [ "$IMGPROTO" = "sheepdog" ]; then + _notrun "image protocol $IMGPROTO does not support large image sizes" +fi + echo echo "creating large image" _make_test_img 5000G @@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt vpc +_supported_proto generic _supported_os Linux @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # currently only qcow2 allows for consistency checks using qemu-img _supported_fmt qcow2 +_supported_proto generic _supported_os Linux echo @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto file _supported_os Linux @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # much of this could be generic for any format supporting compression. _supported_fmt qcow qcow2 +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -43,6 +43,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # much of this could be generic for any format supporting snapshots _supported_fmt qcow2 +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # actually any format that supports snapshots _supported_fmt qcow2 +_supported_proto generic _supported_os Linux echo @@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # currently raw is the only protocol we support _supported_fmt raw +_supported_proto generic _supported_os Linux @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Any format supporting backing files _supported_fmt qcow qcow2 vmdk qed +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Any format supporting backing files _supported_fmt qcow qcow2 vmdk qed +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -45,6 +45,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Any format supporting backing files _supported_fmt qcow qcow2 vmdk qed +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -43,6 +43,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Any format supporting backing files _supported_fmt qcow qcow2 vmdk qed +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt generic +_supported_proto generic _supported_os Linux @@ -43,6 +43,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Any format that supports snapshots _supported_fmt qcow2 +_supported_proto generic _supported_os Linux TEST_OFFSETS="10485760 4294967296" @@ -41,6 +41,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # much of this could be generic for any format supporting compression. _supported_fmt qcow qcow2 +_supported_proto generic _supported_os Linux TEST_OFFSETS="0 4294967296" @@ -43,6 +43,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Currently only qcow2 and qed support rebasing _supported_fmt qcow2 qed +_supported_proto generic _supported_os Linux CLUSTER_SIZE=65536 @@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.pattern _supported_fmt raw qcow2 +_supported_proto file sheepdog _supported_os Linux echo "=== Creating image" @@ -42,6 +42,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Currently only qcow2 supports rebasing _supported_fmt qcow2 +_supported_proto generic _supported_os Linux @@ -39,6 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter _supported_fmt vmdk qcow qcow2 qed +_supported_proto generic _supported_os Linux @@ -45,6 +45,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # Any format supporting backing files except vmdk and qcow which do not support # smaller backing files. _supported_fmt qcow2 qed +_supported_proto generic _supported_os Linux # Choose a size that is not necessarily a cluster size multiple for image @@ -152,12 +152,14 @@ rm -f check.full [ -f check.time ] || touch check.time FULL_IMGFMT_DETAILS=`_full_imgfmt_details` +FULL_IMGPROTO_DETAILS=`_full_imgproto_details` FULL_HOST_DETAILS=`_full_platform_details` #FULL_MKFS_OPTIONS=`_scratch_mkfs_options` #FULL_MOUNT_OPTIONS=`_scratch_mount_options` cat <<EOF IMGFMT -- $FULL_IMGFMT_DETAILS +IMGPROTO -- $FULL_IMGPROTO_DETAILS PLATFORM -- $FULL_HOST_DETAILS EOF @@ -43,6 +43,7 @@ randomize=false rm -f $tmp.list $tmp.tmp $tmp.sed export IMGFMT=raw +export IMGPROTO=file export QEMU_IO_OPTIONS="" for r @@ -123,6 +124,8 @@ check options -vdi test vdi -vpc test vpc -vmdk test vmdk + -rbd test rbd + -sheepdog test sheepdog -xdiff graphical mode diff -nocache use O_DIRECT on backing file -misalign misalign memory allocations @@ -179,6 +182,16 @@ testlist options xpand=false ;; + -rbd) + IMGPROTO=rbd + xpand=false + ;; + + -sheepdog) + IMGPROTO=sheepdog + xpand=false + ;; + -nocache) QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --nocache" xpand=false @@ -47,7 +47,11 @@ fi # make sure we have a standard umask umask 022 -TEST_IMG=$TEST_DIR/t.$IMGFMT +if [ "$IMGPROTO" = "file" ]; then + TEST_IMG=$TEST_DIR/t.$IMGFMT +else + TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT +fi _make_test_img() { @@ -61,6 +65,7 @@ _make_test_img() # XXX(hch): have global image options? $QEMU_IMG create -f $IMGFMT $TEST_IMG $extra_img_options | \ + sed -e "s#$IMGPROTO:$TEST_DIR#TEST_DIR#g" | \ sed -e "s#$TEST_DIR#TEST_DIR#g" | \ sed -e "s#$IMGFMT#IMGFMT#g" | \ sed -e "s# encryption=off##g" | \ @@ -72,9 +77,23 @@ _make_test_img() _cleanup_test_img() { - rm -f $TEST_DIR/t.$IMGFMT - rm -f $TEST_DIR/t.$IMGFMT.orig - rm -f $TEST_DIR/t.$IMGFMT.base + case "$IMGPROTO" in + + file) + rm -f $TEST_DIR/t.$IMGFMT + rm -f $TEST_DIR/t.$IMGFMT.orig + rm -f $TEST_DIR/t.$IMGFMT.base + ;; + + rbd) + rbd rm $TEST_DIR/t.$IMGFMT > /dev/null + ;; + + sheepdog) + collie vdi delete $TEST_DIR/t.$IMGFMT + ;; + + esac } _check_test_img() @@ -207,6 +226,19 @@ _supported_fmt() _notrun "not suitable for this image format: $IMGFMT" } +# tests whether $IMGPROTO is one of the supported image protocols for a test +# +_supported_proto() +{ + for f; do + if [ "$f" = "$IMGPROTO" -o "$f" = "generic" ]; then + return + fi + done + + _notrun "not suitable for this image protocol: $IMGPROTO" +} + # tests whether the host OS is one of the supported OSes for a test # _supported_os() @@ -234,6 +266,11 @@ _full_imgfmt_details() echo "$IMGFMT" } +_full_imgproto_details() +{ + echo "$IMGPROTO" +} + _full_platform_details() { os=`uname -s` |