mirror of https://github.com/xemu-project/xemu.git
qemu-iotests: Add -o and make v3 the default for qcow2
This adds an -o option to qemu-iotests, which is an option string that is passed through to qemu-img create -o... This allows testing different subformat with a command like './check -qcow2 -o compat=0.10'. For qcow2, if no compat option is specified, compat=1.1 is the new default. Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
621f058940
commit
8900436891
|
@ -41,9 +41,6 @@ then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# we need common
|
|
||||||
. ./common
|
|
||||||
|
|
||||||
# we need common.rc
|
# we need common.rc
|
||||||
if ! . ./common.rc
|
if ! . ./common.rc
|
||||||
then
|
then
|
||||||
|
@ -51,6 +48,9 @@ then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# we need common
|
||||||
|
. ./common
|
||||||
|
|
||||||
#if [ `id -u` -ne 0 ]
|
#if [ `id -u` -ne 0 ]
|
||||||
#then
|
#then
|
||||||
# echo "check: QA must be run as root"
|
# echo "check: QA must be run as root"
|
||||||
|
|
|
@ -35,6 +35,7 @@ diff="diff -u"
|
||||||
verbose=false
|
verbose=false
|
||||||
group=false
|
group=false
|
||||||
xgroup=false
|
xgroup=false
|
||||||
|
imgopts=false
|
||||||
showme=false
|
showme=false
|
||||||
sortme=false
|
sortme=false
|
||||||
expunge=true
|
expunge=true
|
||||||
|
@ -44,6 +45,7 @@ rm -f $tmp.list $tmp.tmp $tmp.sed
|
||||||
|
|
||||||
export IMGFMT=raw
|
export IMGFMT=raw
|
||||||
export IMGPROTO=file
|
export IMGPROTO=file
|
||||||
|
export IMGOPTS=""
|
||||||
export QEMU_IO_OPTIONS=""
|
export QEMU_IO_OPTIONS=""
|
||||||
|
|
||||||
for r
|
for r
|
||||||
|
@ -103,6 +105,13 @@ s/ .*//p
|
||||||
mv $tmp.tmp $tmp.list
|
mv $tmp.tmp $tmp.list
|
||||||
xgroup=false
|
xgroup=false
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
elif $imgopts
|
||||||
|
then
|
||||||
|
IMGOPTS="$r"
|
||||||
|
imgopts=false
|
||||||
|
continue
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
xpand=true
|
xpand=true
|
||||||
|
@ -130,6 +139,7 @@ check options
|
||||||
-nocache use O_DIRECT on backing file
|
-nocache use O_DIRECT on backing file
|
||||||
-misalign misalign memory allocations
|
-misalign misalign memory allocations
|
||||||
-n show me, do not run tests
|
-n show me, do not run tests
|
||||||
|
-o options -o options to pass to qemu-img create/convert
|
||||||
-T output timestamps
|
-T output timestamps
|
||||||
-r randomize test order
|
-r randomize test order
|
||||||
|
|
||||||
|
@ -223,6 +233,10 @@ testlist options
|
||||||
showme=true
|
showme=true
|
||||||
xpand=false
|
xpand=false
|
||||||
;;
|
;;
|
||||||
|
-o)
|
||||||
|
imgopts=true
|
||||||
|
xpand=false
|
||||||
|
;;
|
||||||
-r) # randomize test order
|
-r) # randomize test order
|
||||||
randomize=true
|
randomize=true
|
||||||
xpand=false
|
xpand=false
|
||||||
|
@ -299,6 +313,9 @@ BEGIN { for (t='$start'; t<='$end'; t++) printf "%03d\n",t }' \
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Set default options for qemu-img create -o if they were not specified
|
||||||
|
_set_default_imgopts
|
||||||
|
|
||||||
if [ -s $tmp.list ]
|
if [ -s $tmp.list ]
|
||||||
then
|
then
|
||||||
# found some valid test numbers ... this is good
|
# found some valid test numbers ... this is good
|
||||||
|
|
|
@ -53,19 +53,44 @@ else
|
||||||
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
|
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
_optstr_add()
|
||||||
|
{
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
echo "$1,$2"
|
||||||
|
else
|
||||||
|
echo "$2"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_set_default_imgopts()
|
||||||
|
{
|
||||||
|
if [ "$IMGFMT" == "qcow2" ] && ! (echo "$IMGOPTS" | grep "compat=" > /dev/null); then
|
||||||
|
IMGOPTS=$(_optstr_add "$IMGOPTS" "compat=1.1")
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_make_test_img()
|
_make_test_img()
|
||||||
{
|
{
|
||||||
# extra qemu-img options can be added by tests
|
# extra qemu-img options can be added by tests
|
||||||
# at least one argument (the image size) needs to be added
|
# at least one argument (the image size) needs to be added
|
||||||
local extra_img_options=""
|
local extra_img_options=""
|
||||||
local image_size=$*
|
local image_size=$*
|
||||||
|
local optstr=""
|
||||||
|
|
||||||
|
if [ -n "$IMGOPTS" ]; then
|
||||||
|
optstr=$(_optstr_add "$optstr" "$IMGOPTS")
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$1" = "-b" ]; then
|
if [ "$1" = "-b" ]; then
|
||||||
extra_img_options="$1 $2"
|
extra_img_options="$1 $2"
|
||||||
image_size=$3
|
image_size=$3
|
||||||
fi
|
fi
|
||||||
if [ \( "$IMGFMT" = "qcow2" -o "$IMGFMT" = "qed" \) -a -n "$CLUSTER_SIZE" ]; then
|
if [ \( "$IMGFMT" = "qcow2" -o "$IMGFMT" = "qed" \) -a -n "$CLUSTER_SIZE" ]; then
|
||||||
extra_img_options="-o cluster_size=$CLUSTER_SIZE $extra_img_options"
|
optstr=$(_optstr_add "$optstr" "cluster_size=$CLUSTER_SIZE")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$optstr" ]; then
|
||||||
|
extra_img_options="-o $optstr $extra_img_options"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# XXX(hch): have global image options?
|
# XXX(hch): have global image options?
|
||||||
|
@ -76,6 +101,7 @@ _make_test_img()
|
||||||
sed -e "s# encryption=off##g" | \
|
sed -e "s# encryption=off##g" | \
|
||||||
sed -e "s# cluster_size=[0-9]\\+##g" | \
|
sed -e "s# cluster_size=[0-9]\\+##g" | \
|
||||||
sed -e "s# table_size=0##g" | \
|
sed -e "s# table_size=0##g" | \
|
||||||
|
sed -e "s# compat='[^']*'##g" | \
|
||||||
sed -e "s# compat6=off##g" | \
|
sed -e "s# compat6=off##g" | \
|
||||||
sed -e "s# static=off##g"
|
sed -e "s# static=off##g"
|
||||||
}
|
}
|
||||||
|
@ -268,7 +294,11 @@ _require_command()
|
||||||
|
|
||||||
_full_imgfmt_details()
|
_full_imgfmt_details()
|
||||||
{
|
{
|
||||||
echo "$IMGFMT"
|
if [ -n "$IMGOPTS" ]; then
|
||||||
|
echo "$IMGFMT ($IMGOPTS)"
|
||||||
|
else
|
||||||
|
echo "$IMGFMT"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_full_imgproto_details()
|
_full_imgproto_details()
|
||||||
|
|
Loading…
Reference in New Issue