. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
size=128M
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
# vpc is limited to 127GB, so we can't test it here
_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
. ./common.filter
_supported_fmt vpc
+_supported_proto generic
_supported_os Linux
# currently only qcow2 allows for consistency checks using qemu-img
_supported_fmt qcow2
+_supported_proto generic
_supported_os Linux
echo
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt generic
+_supported_proto file
_supported_os Linux
# 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"
# much of this could be generic for any format supporting snapshots
_supported_fmt qcow2
+_supported_proto generic
_supported_os Linux
TEST_OFFSETS="0 4294967296"
# actually any format that supports snapshots
_supported_fmt qcow2
+_supported_proto generic
_supported_os Linux
echo
# currently raw is the only protocol we support
_supported_fmt raw
+_supported_proto generic
_supported_os Linux
# Any format supporting backing files
_supported_fmt qcow qcow2 vmdk qed
+_supported_proto generic
_supported_os Linux
TEST_OFFSETS="0 4294967296"
# Any format supporting backing files
_supported_fmt qcow qcow2 vmdk qed
+_supported_proto generic
_supported_os Linux
TEST_OFFSETS="0 4294967296"
# Any format supporting backing files
_supported_fmt qcow qcow2 vmdk qed
+_supported_proto generic
_supported_os Linux
TEST_OFFSETS="0 4294967296"
# Any format supporting backing files
_supported_fmt qcow qcow2 vmdk qed
+_supported_proto generic
_supported_os Linux
TEST_OFFSETS="0 4294967296"
. ./common.filter
_supported_fmt generic
+_supported_proto generic
_supported_os Linux
# Any format that supports snapshots
_supported_fmt qcow2
+_supported_proto generic
_supported_os Linux
TEST_OFFSETS="10485760 4294967296"
# 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"
# Currently only qcow2 and qed support rebasing
_supported_fmt qcow2 qed
+_supported_proto generic
_supported_os Linux
CLUSTER_SIZE=65536
. ./common.pattern
_supported_fmt raw qcow2
+_supported_proto file sheepdog
_supported_os Linux
echo "=== Creating image"
# Currently only qcow2 supports rebasing
_supported_fmt qcow2
+_supported_proto generic
_supported_os Linux
. ./common.filter
_supported_fmt vmdk qcow qcow2 qed
+_supported_proto generic
_supported_os Linux
# 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
[ -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
rm -f $tmp.list $tmp.tmp $tmp.sed
export IMGFMT=raw
+export IMGPROTO=file
export QEMU_IO_OPTIONS=""
for r
-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
xpand=false
;;
+ -rbd)
+ IMGPROTO=rbd
+ xpand=false
+ ;;
+
+ -sheepdog)
+ IMGPROTO=sheepdog
+ xpand=false
+ ;;
+
-nocache)
QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --nocache"
xpand=false
# 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()
{
# 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" | \
_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()
_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()
echo "$IMGFMT"
}
+_full_imgproto_details()
+{
+ echo "$IMGPROTO"
+}
+
_full_platform_details()
{
os=`uname -s`